您正在查看 Apigee Edge 文档。
  转到
     Apigee X 文档。 信息
ExecutionError
错误代码
steps.javacallout.ExecutionError
错误响应正文
{
  "fault": {
    "faultstring": "Execution returned an error result",
    "detail": {
      "errorcode": "flow.execution.ExecutionReturnedFailure"
    }
  }
}
原因
如果在执行 JavaCallout 政策期间 Java 代码抛出异常或返回 null,就会发生此错误。
诊断
- 
 
- 检查 JavaCallout 政策和所使用的资源。在上面的示例中,JavaCallout 政策使用名为 - hello.jar的资源,如下所示:- <JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
- 通过修改源代码,捕获 Java 异常并将其存储在流变量中,如处理 Java 标注中的错误中所述。 
- 编译受影响资源(JAR 文件)并将其替换为更新后的 Java 制品。 
- 将 API 代理部署为新的修订版本并进行 API 调用。 
- 启动另一个跟踪会话。  
- 请注意, - JAVA_STACKTRACE变量中提供了堆栈轨迹。堆栈轨迹列出了实际异常和 Java 源代码文件以及抛出异常的行号。
- 使用此信息可修复 Java 代码中的问题。 
- 在此示例中,JavaCallout 政策因 - JavaError.java文件第 25 行中的 ArithmeticException(除以零)而出现故障。
解决方法
- 根据所抛出的异常,修复相关 Java 源代码文件中的问题。 a. 在上面显示的示例中,问题是由算术错误(除以零)导致的。转到堆栈轨迹指示的特定源代码文件和相应行号。  - b. 您不能执行除以零,因此请移除包含错误代码行的整个 else 块,即可解决该问题。 
- 在之前存在的相应级别(API 代理、环境或组织)替换包含已修改文件的相关 JAR 文件。 
- 将 API 代理保存并部署作为新修订版本。