Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Erro de execução
Código de erro
steps.javacallout.ExecutionError
Corpo da resposta de erro
{
"fault": {
"faultstring": "Execution returned an error result",
"detail": {
"errorcode": "flow.execution.ExecutionReturnedFailure"
}
}
}
Causa
Esse erro ocorre se o código Java gera uma exceção ou retorna null durante a execução de uma política JavaCallout.
Diagnóstico
Inicie uma sessão de trace para capturar o erro e identificar qual política JavaCallout falhou.
Examine a política JavaCallout e o recurso usado. No exemplo acima, a política JavaCallout usa um recurso chamado
hello.jar
, conforme mostrado a seguir:<JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
Capture e armazene a exceção Java em uma variável de fluxo modificando o código-fonte, conforme descrito em Como lidar com erros em uma frase de destaque Java.
Compile e substitua o recurso afetado (arquivo JAR) pelo artefato Java atualizado.
Implante o proxy de API como uma nova revisão e faça a chamada de API.
Inicie outra sessão de trace.
Um stack trace está disponível na variável
JAVA_STACKTRACE
. O stack trace lista a exceção real e o arquivo de origem Java e o número da linha em que o erro é lançado.Use essas informações para corrigir o problema no código Java.
Neste exemplo, a política JavaCallout falhou devido a uma ArithmeticException (divisão por zero) no arquivo
JavaError.java
na linha 25.
Resolução
Dependendo da exceção lançada, corrija o problema nos arquivos de origem Java relevantes. a. No exemplo mostrado acima, o problema foi causado por um erro aritmético (divisão por zero). Acesse o arquivo de origem e o número de linha específicos indicados pelo stack trace.
b. Como não é possível executar a divisão por zero, remova o bloco adicional completo que contenha a linha de código com falha para resolver o problema.
Substitua o arquivo JAR relevante que contém os arquivos modificados no nível apropriado (proxy de API, ambiente ou organização), em que ele existia anteriormente.
Salve e implante o proxy de API como uma nova revisão.