Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
ExecutionError
Codice di errore
steps.javacallout.ExecutionError
Corpo della risposta all'errore
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Causa
Questo errore si verifica se il codice Java genera un'eccezione o restituisce null durante l'esecuzione di un criterio JavaCallout.
Diagnostica
Avvia una sessione di traccia per acquisire l'errore e identificare il criterio JavaCallout non riuscito.
Esamina il criterio JavaCallout e la risorsa utilizzata. Nell'esempio riportato sopra, il criterio JavaCallout utilizza una risorsa denominata
hello.jar
, come mostrato di seguito:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Acquisisci e archivia l'eccezione Java in una variabile di flusso modificando il codice sorgente, come descritto in Gestione degli errori in un callout Java.
Compila e sostituisci la risorsa interessata (file JAR) con l'artefatto Java aggiornato.
Esegui il deployment del proxy API come nuova revisione ed effettua la chiamata API.
Avvia un'altra sessione di traccia.
Tieni presente che nella variabile
JAVA_STACKTRACE
è disponibile un'analisi dello stack. L'analisi dello stack elenca l'eccezione effettiva e il file di origine Java e il numero di riga in cui viene generato l'errore.Utilizza queste informazioni per risolvere il problema nel codice Java.
In questo esempio, il criterio JavaCallout non è riuscito a causa di un'eccezione ArithmeticException (divisione per zero) nel file
JavaError.java
alla riga 25.
Risoluzione
A seconda dell'eccezione generata, risolvi il problema nei file di origine Java pertinenti. a. Nell'esempio precedente, il problema è stato causato da un errore aritmetico (divisione per zero). Vai al file di origine e al numero di riga specifici indicati dall'analisi dello stack.
b. Poiché non è possibile eseguire la divisione per zero, per risolvere il problema rimuovi il blocco di altro tipo completo contenente la riga di codice errata.
Sostituisci il file JAR pertinente contenente i file modificati nel livello appropriato (proxy API, ambiente o organizzazione), in cui esistevano in precedenza.
Salva ed esegui il deployment del proxy API come nuova revisione.