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 政策的特定流程中使用。