<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
자바 콜아웃이란 무엇인가요?
자바 콜아웃을 처음 사용하는 경우 먼저 자바 콜아웃을 만드는 방법부터 살펴보는 것이 좋습니다.
자바 콜아웃에서 속성 사용
속성을 사용하면 런타임 시 자바 코드에서 액세스할 수 있는 자바 콜아웃 정책에 이름/값 쌍을 지정할 수 있습니다. 각 속성에 리터럴 문자열 값을 지정해야 합니다. 이 요소에서는 흐름 변수를 참조할 수 없습니다.
속성을 사용하는 간단한 자바 콜아웃 예시를 살펴보겠습니다. 이 예시에서는 자바 콜아웃 정책이 포함된 프록시를 만듭니다. 정책은 <Properties>
요소를 사용하여 이름/값 쌍을 지정합니다. 자바 코드에서 값을 검색한 다음 이 값을 사용하여 응답 헤더를 설정합니다.
프로젝트 다운로드
간단하게 하기 위해 GitHub의 Apigee api-platform-samples 저장소에서 이 프로젝트를 다운로드할 수 있습니다.
- api-platform-samples를 시스템에 다운로드하거나 복제합니다.
- 원하는 터미널 또는 코드 편집기에서
api-platform-samples/doc-samples/java-properties
프로젝트로 이동합니다.
자바 콜아웃 정책
정책에서 <Properties>
요소를 사용합니다. 이 요소를 사용하면 이름/값 쌍을 지정할 수 있습니다. 런타임에서 자바 코드는 정책에 지정된 속성의 값에 액세스할 수 있습니다. 잠시 후에 살펴보겠습니다.
<JavaCallout name="java-callout"> <ClassName>com.apigeesample.JavaProperties</ClassName> <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL> <Properties> <Property name="prop">WORLD!</Property> </Properties> </JavaCallout>
샘플 자바 코드
이 샘플의 자바 코드는 자바 콜아웃 정책에 지정된 속성을 검색하는 방법을 보여줍니다. 샘플 프로젝트의 java-properties/callout/src/main/java/JavaProperties.java
에서 소스 코드를 확인할 수 있습니다. 이 주제의 뒷부분에서 이 코드를 컴파일하고 배포하는 단계를 살펴보겠습니다.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Map; public class JavaProperties implements Execution { private Map <String,String> properties; // read-only public JavaProperties(Map <String,String> properties) { this.properties = properties; } public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop")); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Maven으로 코드 컴파일
Maven로 컴파일할 수 있도록 프로젝트가 설정되었습니다. javac
를 사용하려는 경우 예시도 포함합니다.
- Maven이 설치되어 있는지 확인합니다.
mvn -version
java-properties/buildsetup.sh
스크립트를 실행합니다. 이 스크립트는 로컬 Maven 저장소에 필요한 JAR 종속 항목을 설치합니다.- cd 명령어로
java-properties/callout
디렉터리로 이동합니다. - Maven을 실행합니다.
mvn clean package
- 원하는 경우 JAR 파일
edge-custom-policy-java-properties.jar
가java-properties/apiproxy/resources/java
에 복사되었는지 확인합니다. 프록시로 배포하려는 JAR 파일에 필요한 위치입니다.
javac로 컴파일(선택사항)
javac
을 사용하여 코드를 컴파일하려면 java-properties
디렉터리에서 다음과 유사한 작업을 수행할 수 있습니다. 필수 JAR 파일은 java-properties/lib
디렉터리에 제공됩니다.
- cd 명령어로
api-platform-samples/doc-samples/java-properties
로 이동합니다. - 경로에 javac가 있는지 확인합니다.
javac -version
- 다음 javac 명령어를 실행합니다.
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- JAR 파일을 만듭니다.
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- JAR 파일을 apiproxy/리소스/자바 디렉터리에 복사합니다. 프록시로 배포하려는 JAR 파일에 필요한 위치입니다.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
프록시 배포 및 호출
배포 스크립트는 ./java-properties
디렉터리에서 제공됩니다. 하지만 실행하기 전에 빠른 설정을 수행해야 합니다.
- cd 명령어로
api-platform-samples/doc-samples/java-properties
로 이동합니다. - 아직 열지 않았다면
../../setup/setenv.sh
파일을 열고 수정합니다. 사용자 이름 (사용자 이름, 이메일 주소)을 계정, 조직 이름, API 생성에 사용하는 도메인 등 관리 호출도 가능합니다. 예를 들어 에지 클라우드의 경우 도메인은https://api.enterprise.apigee.com
하지만 사용하는 경우 도메인이 다를 수 있습니다 사용할 수 있습니다 setenv.sh
파일을 저장합니다.- 배포 스크립트를 실행합니다.
./deploy.sh
- 배포에 성공하면 호출 스크립트를 실행합니다.
./invoke.sh
호출 스크립트는 다음과 같은 cURL 명령어를 호출합니다.
curl http://$org-$env.$api_domain/java-properties
프록시가
X-PROPERTY-HELLO: WORLD!
헤더를 반환합니다. 이 정책에는 속성 이름/값 쌍"prop/WORLD!"
를 추가했습니다. 자바 콜아웃은"WORLD!"
값을 검색하여X-PROPERTY-HELLO
라는 헤더에 설정합니다.messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));