<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Qu'est-ce qu'un appel Java ?
Si vous débutez avec les appels Java, nous vous recommandons de commencer par consulter la pageComment créer un appel Java.
Utiliser des propriétés dans un appel Java
Les propriétés vous permettent de spécifier des paires nom/valeur dans une règle d'appel Java à laquelle vous pouvez accéder depuis votre code Java au moment de l'exécution. Vous devez spécifier une valeur de chaîne littérale pour chaque propriété. Vous ne pouvez pas référencer des variables de flux dans cet élément.
Examinons un exemple d'appel Java simple qui utilise des propriétés. Dans cet exemple, nous créons un proxy avec une règle d'appel Java. La règle utilise l'élément <Properties>
pour spécifier une paire nom/valeur. Dans le code Java, nous récupérons la valeur et l'utilisons pour définir un en-tête de réponse.
Télécharger le projet
Le moyen le plus simple pour découvrir ce projet est de le télécharger à partir du dépôt api-platform-samples d'Apigee sur GitHub.
- Téléchargez ou clonez api-platform-samples sur votre système.
- Dans le terminal ou l'éditeur de code de votre choix, accédez au projet
api-platform-samples/doc-samples/java-properties
.
Règle d'appel Java
La règle utilise l'élément <Properties>
. Cet élément vous permet de spécifier des paires nom/valeur. Lors de l'exécution, le code Java peut accéder aux valeurs des propriétés spécifiées dans la règle, comme nous le verrons plus tard.
<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>
Exemple de code Java
Le code Java de cet exemple montre comment récupérer une propriété spécifiée dans la règle d'appel Java. Dans l'exemple de projet, vous trouverez le code source dans java-properties/callout/src/main/java/JavaProperties.java
. Nous aborderons les étapes de compilation et de déploiement de ce code plus loin dans cet article.
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; } } }
Compiler le code avec Maven
Le projet est configuré pour que vous puissiez le compiler avec Maven. Nous incluons également un exemple vous permettant d'utiliser javac
si vous le souhaitez.
- Assurez-vous d'avoir installé Maven:
mvn -version
- Exécutez le script
java-properties/buildsetup.sh
. Ce script installe les dépendances JAR requises dans votre dépôt local Maven. - Accédez au répertoire
java-properties/callout
à l'aide de la commande cd. - Exécutez Maven:
mvn clean package
- Si vous le souhaitez, vérifiez que le fichier JAR
edge-custom-policy-java-properties.jar
a bien été copié dans le répertoirejava-properties/apiproxy/resources/java
. C'est à cet emplacement que doivent se trouver les fichiers JAR que vous souhaitez déployer avec un proxy.
Compiler avec javac (facultatif)
Si vous souhaitez utiliser javac
pour compiler le code, vous pouvez employez quelque chose de semblable à ce qui suit (à partir du répertoire java-properties
). Les fichiers JAR requis sont fournis dans le répertoire java-properties/lib
.
- Accédez au répertoire
api-platform-samples/doc-samples/java-properties
à l'aide de la commande cd. - Assurez-vous que javac se trouve dans la variable PATH.
javac -version
- Exécutez la commande javac suivante:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Créez le fichier JAR :
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Copiez le fichier JAR dans le répertoire apiproxy/resources/java. C'est à cet emplacement que doivent se trouver les fichiers JAR que vous souhaitez déployer avec un proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Déployer et appeler le proxy
Un script de déploiement est fourni dans le répertoire ./java-properties
. Mais avant de l'exécuter, vous devez effectuer une configuration rapide.
- Accédez au répertoire
api-platform-samples/doc-samples/java-properties
à l'aide de la commande cd. - Si vous ne l'avez pas déjà fait, ouvrez le fichier
../../setup/setenv.sh
et modifiez-le comme indiqué dans vos informations de compte Apigee: votre nom d'utilisateur (l'adresse e-mail associé à votre compte), le nom de votre organisation et le domaine que vous utilisez pour créer l'API de gestion de projet. Par exemple, pour le cloud Edge, le domaine esthttps://api.enterprise.apigee.com
; Cependant, votre domaine peut être différent à l'aide de Edge Private Cloud. - Enregistrez le fichier
setenv.sh
. - Exécutez le script de déploiement:
./deploy.sh
- Si le déploiement réussit, exécutez le script d'appel:
./invoke.sh
Le script d'appel appelle une commande cURL qui se présente comme suit:
curl http://$org-$env.$api_domain/java-properties
Le proxy renvoie l'en-tête
X-PROPERTY-HELLO: WORLD!
. N'oubliez pas que, dans la règle, nous avons ajouté"prop/WORLD!"
en tant que paire nom/valeur d'une propriété. L'appel Java récupère la valeur"WORLD!"
et la place dans un en-tête appeléX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));