Solución de errores en el entorno de ejecución de la política de JavaCallout

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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

  1. Inicia una sesión de seguimiento para capturar el error e identificar qué política de JavaCallout falló.

  2. 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>
    
    
  3. Captura y almacena la excepción de Java en una variable de flujo modificando el código fuente, como se describe en Cómo manejar errores en un texto destacado de Java.

  4. Compila y reemplaza el recurso afectado (archivo JAR) por el artefacto de Java actualizado.

  5. Implementa el proxy de API como una revisión nueva y realiza la llamada a la API.

  6. Inicia otra sesión de seguimiento.

  7. 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.

  8. Usa esta información para solucionar el problema en el código de Java.

  9. 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.

Resolución

  1. 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.

  2. 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.

  3. Guarda e implementa el proxy de API como una revisión nueva.