Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Co to jest wywołanie Javy?
Jeśli nie masz doświadczenia z wywołaniami Javy, zacznij od artykułu Tworzenie wywołania Javy.
Używanie właściwości w wywołaniu Javy
Właściwości umożliwiają określanie par nazwa/wartość w zasadach wywołania Javy, do których można uzyskać dostęp z kodu Java w czasie działania. Dla każdej właściwości musisz podać wartość literału ciągu znaków. W tym elemencie nie możesz odwoływać się do zmiennych przepływu.
Przyjrzyjmy się prostemu przykładowi wywołania Javy, które używa właściwości. W tym przykładzie utworzymy serwer proxy, który zawiera zasady wywołania Javy. Zasady używają elementu
<Properties> do określania pary nazwa/wartość. W kodzie Java pobieramy wartość i używamy jej do ustawienia nagłówka odpowiedzi.
Pobieranie projektu
Aby uprościć sprawę, możesz pobrać ten projekt z repozytorium Apigee api-platform-samples w GitHub.
- Pobierz lub sklonuj repozytorium api-platform-samples na swój komputer.
- W terminalu lub wybranym edytorze kodu przejdź do
api-platform-samples/doc-samples/java-propertiesprojektu.
Zasady wywołania Javy
Zasady używają elementu <Properties>. Ten element umożliwia określanie
par nazwa/wartość. W czasie działania kod Java może uzyskiwać dostęp do wartości właściwości określonych w
zasadach, co zobaczymy za chwilę.
<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>
Przykładowy kod Java
Kod Java w tym przykładzie pokazuje, jak pobrać właściwość określoną w
zasadach wywołania Javy. W projekcie przykładowym kod źródłowy znajdziesz w
java-properties/callout/src/main/java/JavaProperties.java. Kroki kompilowania i wdrażania tego kodu omówimy w dalszej części tego artykułu.
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; } } }
Kompilowanie kodu za pomocą Maven
Projekt jest skonfigurowany tak, aby można go było skompilować za pomocą Maven. Jeśli chcesz użyć
javac, podamy też przykład.
- Sprawdź, czy masz zainstalowany program Maven:
mvn -version
- Uruchom skrypt
java-properties/buildsetup.sh. Ten skrypt instaluje wymagane zależności JAR w lokalnym repozytorium Maven. - Przejdź do katalogu
java-properties/callout. - Uruchom Maven:
mvn clean package
- Jeśli chcesz, sprawdź, czy plik JAR
edge-custom-policy-java-properties.jarzostał skopiowany do katalogujava-properties/apiproxy/resources/java. Jest to wymagana lokalizacja plików JAR, które chcesz wdrożyć za pomocą serwera proxy.
Kompilowanie za pomocą javac (opcjonalnie)
Jeśli chcesz skompilować kod za pomocą javac, możesz zrobić coś podobnego do tego (z katalogu java-properties). Wymagane pliki JAR są dostępne
w katalogu java-properties/lib.
- Przejdź do katalogu
api-platform-samples/doc-samples/java-properties. - Upewnij się, że masz javac w ścieżce.
javac -version
- Uruchom to polecenie javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Utwórz plik JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Skopiuj plik JAR do katalogu apiproxy/resources/java. Jest to wymagana lokalizacja
plików JAR, które chcesz wdrożyć za pomocą serwera proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Wdrażanie i wywoływanie serwera proxy
Skrypt wdrożenia znajduje się w katalogu ./java-properties. Zanim go
uruchomisz, musisz przeprowadzić szybką konfigurację.
- Przejdź do katalogu
api-platform-samples/doc-samples/java-properties. - Jeśli jeszcze tego nie zrobisz, otwórz plik
../../setup/setenv.shi edytuj go zgodnie z informacjami o koncie Apigee: nazwą użytkownika (adresem e-mail powiązanym z kontem), nazwą organizacji i domeną, której używasz do wykonywania wywołań zarządzania interfejsami API. Na przykład w przypadku chmury Edge domena tohttps://api.enterprise.apigee.com. Jeśli jednak używasz Edge Private Cloud, domena może być inna. - Zapisz plik
setenv.sh. - Uruchom skrypt wdrożenia:
./deploy.sh
- Jeśli wdrożenie się powiedzie, uruchom skrypt wywołania:
./invoke.sh
Skrypt wywołania wywołuje polecenie cURL, które wygląda tak:
curl http://$org-$env.$api_domain/java-properties
Serwer proxy zwraca nagłówek:
X-PROPERTY-HELLO: WORLD!. Pamiętaj, że w zasadach dodaliśmy parę nazwa/wartość właściwości"prop/WORLD!". Wywołanie Javy pobiera wartość"WORLD!"i ustawia ją w nagłówku o nazwieX-PROPERTY-HELLO:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));