您正在查看 Apigee 和 Apigee Hybrid 文档。
查看 Apigee Edge 文档。
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 代理保存并部署作为新修订版本。