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