Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
ExecutionError
Código de error
steps.javacallout.ExecutionError
Cuerpo de la respuesta del error
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Causa
Este error ocurre si el código de Java muestra una excepción o un valor null durante la ejecución de una política de JavaCallout.
Diagnóstico
Inicia una sesión de seguimiento para capturar el error e identificar qué política de JavaCallout falló.
Examina la política de JavaCallout y el recurso que se usa. En el ejemplo anterior, la política de JavaCallout usa un recurso llamado
hello.jar
, como se muestra a continuación:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Captura y almacena la excepción de Java en una variable de flujo mediante la modificación del código fuente, como se describe en Maneja errores en un texto destacado de Java.
Compila y reemplaza el recurso afectado (archivo JAR) por el artefacto de Java actualizado.
Implementa el proxy de API como una revisión nueva y realiza la llamada a la API.
Inicia otra sesión de seguimiento.
Observa que hay un seguimiento de pila disponible en la variable
JAVA_STACKTRACE
. En el seguimiento de pila, se enumeran la excepción real y número de línea y el archivo de origen de Java en el que se genera el error.Usa esta información para solucionar el problema en el código de Java.
En este ejemplo, la política de JavaCallout falló debido a una ArithmeticException (se dividió por cero) en el archivo
JavaError.java
en la línea 25.
Solución
Dependiendo de la excepción que se haya generado, soluciona el problema en los archivos de origen de Java relevantes. En el ejemplo anterior, el problema se debe a un error aritmético (se dividió por cero). Ve al archivo de origen y al número de línea específicos que indica el seguimiento de pila.
b. Como no puede dividir por cero, quita el bloque completo que contiene la línea de código defectuosa para resolver el problema.
Reemplaza el archivo JAR relevante que contiene los archivos modificados en el nivel apropiado (proxy de API, organización o entorno) en el que existía antes.
Guarda e implementa el proxy de API como una revisión nueva.