HTTPModifier 執行階段錯誤疑難排解

您正在查看 Apigee X 說明文件。
查看 Apigee Edge 說明文件。

UnresolvedVariable

錯誤代碼

steps.httpmodifier.UnresolvedVariable

錯誤回應主體

{
    "fault": {
        "faultstring": "HTTPModifier[policy_name]: unable to resolve variable [variable_name]",
        "detail": {
            "errorcode": "steps.httpmodifier.UnresolvedVariable"
        }
    }
}

原因

如果 HTTPModifier 政策中指定的變數為下列任一情況,就會發生這項錯誤:

  • 超出範圍 (在執行政策的特定流程中不可用),或
  • 無法解析 (未定義)

診斷

  1. 找出發生錯誤的 HTTPModifier 政策,以及無法使用的變數名稱。您可以在錯誤回應的 faultstring 元素中找到這兩項項目。

    例如,在以下 faultstring 中,政策名稱為 googleBook,變數為 var

    "faultstring": "HTTPModifier[googleBook]: unable to resolve variable var"
    
  2. 在失敗的 HTTPModifier 政策 XML 中,請確認所用變數的名稱與錯誤字串中指出的變數名稱相符 (上方步驟 1)。

  3. 判斷在執行 HTTPModifier 政策的流程中,變數是否已定義且可用。

  4. 如果變數為:

    1. 超出範圍 (在執行政策的特定流程中不可用),或
    2. 無法解析 (未定義)

    則表示這是錯誤的原因。

    請檢查變數是否在要求流程中,在 HTTPModifier 政策執行前執行的任何政策中定義。如果未定義變數,您會收到以下錯誤代碼:

    steps.httpmodifier.UnresolvedVariable
    

解決方法

請確認政策中參照的變數存在,且可在執行 HTTPModifier 政策的特定流程中使用。