您正在查看 Apigee 和 Apigee Hybrid 說明文件。
    查看 
    Apigee Edge 說明文件。
ExecutionError
錯誤代碼
steps.javacallout.ExecutionError
錯誤回應主體
{
  "fault": {
    "faultstring": "Execution returned an error result",
    "detail": {
      "errorcode": "flow.execution.ExecutionReturnedFailure"
    }
  }
}
原因
如果 Java 程式碼在執行 JavaCallout 政策期間擲回例外狀況或傳回 null,就會發生此錯誤。
診斷
- 啟動追蹤工作階段,擷取錯誤並找出失敗的 JavaCallout 政策。  
- 檢查 JavaCallout 政策和所使用的資源。在上述範例中,JavaCallout 政策使用名為 - hello.jar的資源,如下所示:- <JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://hello.jar</ResourceURL> </JavaCallout>
- 如「在 JavaCallout 政策中處理錯誤」一文所述,修改原始碼,即可擷取 Java 例外狀況並儲存在流程變數中。 
- 編譯並使用更新過的 Java 構件取代受影響的資源 (JAR 檔案)。 
- 將 API Proxy 部署為新修訂版本,並發出 API 呼叫。 
- 開始另一個追蹤工作階段。  
- 請注意,堆疊追蹤會顯示在 - JAVA_STACKTRACE變數中。堆疊追蹤會列出實際例外狀況,以及擲回錯誤的 Java 來源檔案和行號。
- 請參考這項資訊,修正 Java 程式碼中的問題。 
- 在這個範例中, - JavaError.java檔案第 25 行出現 ArithmeticException (除以零),因此 JavaCallout 政策失敗。
解決方法
- 視擲回的例外狀況而定,修正相關 Java 來源檔案中的問題。 a. 在上述範例中,問題是由算術錯誤 (除以零) 造成。前往堆疊追蹤記錄所指示的特定來源檔案和行號。  - b. 由於無法執行除以零的運算,請移除包含錯誤程式碼行的整個 else 區塊,以解決問題。 
- 在先前存在的適當層級 (API 代理程式、環境或機構) 中,替換包含已修改檔案的相關 JAR 檔案。 
- 儲存並部署 API Proxy 做為新修訂版本。