<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Was ist ein Java-Callout?
Wenn Sie noch nicht mit Java-Callouts vertraut sind, sollten Sie mit dem Erstellen einer Java-Erweiterung beginnen.
Attribute in einem Java-Callout verwenden
Mit Attributen können Sie Namen/Wert-Paare in einer Java-Callout-Richtlinie angeben, auf die Sie von Ihrem Java-Code zur Laufzeit zugreifen können. Sie müssen für jedes Attribut einen literalen Stringwert angeben. Sie können in diesem Element nicht auf Ablaufvariablen verweisen.
Im Folgenden finden Sie ein einfaches Java-Callout-Beispiel, das Attribute verwendet. In diesem Beispiel erstellen wir einen Proxy mit einer Java-Callout-Richtlinie. Die Richtlinie verwendet das <Properties>
-Element, um ein Name/Wert-Paar anzugeben. Im Java-Code rufen wir den Wert ab und verwenden ihn zum Festlegen eines Antwort-Headers.
Projekt herunterladen
Sie können dieses Projekt aus dem Apigee-Repository api-platform-samples auf GitHub herunterladen.
- Laden Sie api-platform-samples in Ihr System herunter oder klonen Sie es.
- Wechseln Sie in einem Terminal oder Codeeditor Ihrer Wahl zum
api-platform-samples/doc-samples/java-properties
-Projekt.
Java-Callout-Richtlinie
Die Richtlinie verwendet das <Properties>
-Element. Mit diesem Element können Sie Name/Wert-Paare angeben. Zur Laufzeit kann Ihr Java-Code auf die Werte der in der Richtlinie angegebenen Attribute zugreifen, wie wir gleich sehen werden.
<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-Beispielcode
Der Java-Code für dieses Beispiel zeigt, wie Sie eine Eigenschaft abrufen, die in der Java-Callout-Richtlinie angegeben ist. Im Beispielprojekt finden Sie den Quellcode in java-properties/callout/src/main/java/JavaProperties.java
. Die Schritte zum Kompilieren und Bereitstellen dieses Codes werden später in diesem Thema beschrieben.
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; } } }
Code mit Maven kompilieren
Das Projekt ist so eingerichtet, dass Sie es mit Maven kompilieren können. Wenn Sie javac
verwenden möchten, fügen wir außerdem ein Beispiel hinzu.
- Maven muss installiert sein:
mvn -version
- Führen Sie das
java-properties/buildsetup.sh
-Skript aus: Mit diesem Skript werden die erforderlichen JAR-Abhängigkeiten in Ihrem lokalen Maven-Repository installiert. - cd in das
java-properties/callout
-Verzeichnis. - Führen Sie Maven aus:
mvn clean package
- Prüfen Sie bei Bedarf, ob die
edge-custom-policy-java-properties.jar
-JAR-Datei injava-properties/apiproxy/resources/java
kopiert wurde. Dies ist der erforderliche Speicherort für JAR-Dateien, die Sie mit einem Proxy bereitstellen möchten.
Mit Javac komplieren (optional)
Wenn Sie javac
verwenden möchten, um den Code zu kompilieren, können Sie beispielsweise Folgendes ausführen (aus dem java-properties
-Verzeichnis). Die erforderlichen JAR-Dateien werden im java-properties/lib
-Verzeichnis für Sie bereitgestellt.
- cd in
api-platform-samples/doc-samples/java-properties
. - Achten Sie darauf, dass Ihr Pfad javac enthält.
javac -version
- Führen Sie den folgenden javac-Befehl aus:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- JAR-Datei erstellen:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Kopieren Sie die JAR-Datei in das Verzeichnis apiproxy/resources/java. Dies ist der erforderliche Speicherort für JAR-Dateien, die Sie mit einem Proxy bereitstellen möchten.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Proxy bereitstellen und aufrufen
Ein Bereitstellungsskript wird im ./java-properties
-Verzeichnis bereitgestellt. Bevor Sie es ausführen, müssen Sie jedoch eine schnelle Einrichtung vornehmen.
- CD zu
api-platform-samples/doc-samples/java-properties
- Öffnen Sie die Datei
../../setup/setenv.sh
und bearbeiten Sie sie, falls Sie das noch nicht getan haben. wie mit Ihren Apigee-Kontoinformationen angegeben: Ihr Nutzername (die E-Mail-Adresse) die mit Ihrem Konto verknüpft sind), den Namen Ihrer Organisation und die Domain, die Sie zur Erstellung der API Anrufverwaltung. Bei Edge Cloud ist die Domain beispielsweisehttps://api.enterprise.apigee.com
; Ihre Domain kann jedoch anders sein, wenn Sie mit Edge Private Cloud. - Speichern Sie die Datei
setenv.sh
. - Führen Sie das Bereitstellungsskript aus:
./deploy.sh
- Wenn die Bereitstellung erfolgreich ist, führen Sie das Aufrufskript aus:
./invoke.sh
Das Aufrufskript ruft einen cURL-Befehl auf, der so aussieht:
curl http://$org-$env.$api_domain/java-properties
Der Proxy gibt den
X-PROPERTY-HELLO: WORLD!
-Header zurück. Beachten Sie, dass in der Richtlinie ein Attribut-Name/Wert-Paar"prop/WORLD!"
hinzugefügt wurde. Das Java-Callout ruft den"WORLD!"
-Wert ab und legt es in einem Header mit demX-PROPERTY-HELLO
-Namen fest:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));