Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
ExecutionError
Code d'erreur
steps.javacallout.ExecutionError
Corps de la réponse d'erreur
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Cause
Cette erreur se produit lorsque le code Java génère une exception ou renvoie une valeur nulle lors de l'exécution d'une règle JavaCallout.
Diagnostic
Démarrez une session de traçage pour intercepter l'erreur et identifier quelle règle JavaCallout a échoué.
Examinez la règle JavaCallout et la ressource utilisée. Dans l'exemple ci-dessus, la règle JavaCallout utilise une ressource nommée
hello.jar
, comme illustré ci-dessous :<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Capturez et stockez l'exception Java dans une variable de flux en modifiant le code source, comme décrit dans Gérer les erreurs dans une accroche Java.
Compilez et remplacez la ressource affectée (fichier JAR) par l'artefact Java mis à jour.
Déployez le proxy d'API en tant que nouvelle révision et effectuez l'appel d'API.
Démarrez une autre session de traçage.
Notez qu'une trace de pile est disponible dans la variable
JAVA_STACKTRACE
. La trace de la pile répertorie l'exception réelle et le fichier source Java et le numéro de ligne où l'erreur est générée.Utilisez ces informations pour résoudre le problème dans le code Java.
Dans cet exemple, la règle JavaCallout a échoué en raison d'une exception ArithmeticException (division par zéro) dans le fichier
JavaError.java
à la ligne 25.
Solution
En fonction de l'exception générée, corrigez le problème dans le ou les fichiers sources Java correspondants. a. Dans l'exemple ci-dessus, le problème est dû à une erreur arithmétique (division par zéro). Accédez au fichier source et au numéro de ligne indiqués par la trace de la pile.
b. Comme vous ne pouvez pas effectuer de division par zéro, supprimez le bloc et tout autre bloc contenant la ligne de code défaillante afin de résoudre le problème.
Replacez le fichier JAR contenant les fichiers modifiés à l'emplacement (proxy, environnement ou organisation de l'API), où il existait auparavant.
Enregistrez et déployez le proxy d'API en tant que nouvelle révision.