您正在查看 Apigee 和 Apigee Hybrid 文档。
查看 Apigee Edge 文档。
SourceUnavailable
错误代码
steps.json2xml.SourceUnavailable
错误响应正文
{ "fault": { "faultstring": "JSONToXML[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.json2xml.SourceUnavailable" } } }
错误示例
{
"fault": {
"faultstring": "JSONToXML[Convert-JSONToXML]: Source response is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}
原因
如果 JSONtoXML 政策的 <Source>
元素中指定的消息变量是以下情况之一,则会发生此错误:
- 超出范围(在执行政策的特定流中不可用)
- 无法解析(未定义)
例如,如果本应在请求流中执行 JSONtoXML 政策,但将 <Source>
元素设置为 response
变量,而请求流中并不存在该变量,那么就会出现此错误。
诊断
标识出错的 JSONtoXML 政策以及不可用的变量的名称。您可以在错误响应的
faultstring
元素中找到这两项。例如,在以下faultstring
中,政策名称为Convert-JSONToXML
,变量为response
:"faultstring": "JSONToXML[Convert-JSONToXML]: Source response is not available"
在失败的 JSONtoXML 政策 XML 中,验证
<Source>
元素中设置的变量名称是否与错误字符串中标识(上述第 1 步)的变量名称相匹配。例如,以下 JSONtoXML 政策在<Source>
元素中指定了一个名为response
的变量,该变量与faultstring
中的内容匹配:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML"> <DisplayName>Convert-JSONToXML</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <OutputVariable>request</OutputVariable> <Source>response</Source> </JSONToXML>
确定
<Source>
元素中使用的变量是否已定义且可在执行 JSONtoXML 政策的流中使用。如果该变量:
- 超出范围(在执行政策的特定流中不可用)
- 无法解析(未定义)
就会导致错误。
例如,假设上面所示的 JSONtoXML 政策本应在请求流中执行。回想一下,JSONtoXML 政策的
<Source>
元素中使用了response
变量。响应变量仅在响应流中可用。由于请求流中不存在
response
变量,因此会收到错误代码:steps.json2xml.SourceUnavailable
解决方法
确保在失败 JSONtoXML 政策的 <Source>
元素中设置的变量已定义且位于执行政策的流中。
如需更正上面所示的 JSONtoXML 政策示例,您可以修改 <Source>
元素以使用 request
变量,因为它位于请求流中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML">
<DisplayName>Convert-JSONToXML</DisplayName>
<Properties/>
<Options>
<NullValue>NULL</NullValue>
<NamespaceBlockName>#namespaces</NamespaceBlockName>
<DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
<NamespaceSeparator>:</NamespaceSeparator>
<TextNodeName>#text</TextNodeName>
<AttributeBlockName>#attrs</AttributeBlockName>
<AttributePrefix>@</AttributePrefix>
<InvalidCharsReplacement>_</InvalidCharsReplacement>
<ObjectRootElementName>Root</ObjectRootElementName>
<ArrayRootElementName>Array</ArrayRootElementName>
<ArrayItemElementName>Item</ArrayItemElementName>
</Options>
<OutputVariable>request</OutputVariable>
<Source>request</Source>
</JSONToXML>
ExecutionFailed
错误代码
steps.json2xml.ExecutionFailed
错误响应正文
{ "fault": { "faultstring": "JSONToXML[policy_name]: Execution failed due to reason: Expecting { or [ at line 1", "detail": { "errorcode": "steps.json2xml.ExecutionFailed" } } }
可能的原因
造成此错误的可能原因包括:
原因 | 说明 |
缺少输入载荷 | 输入载荷 (JSON) 为空。 |
输入无效或格式错误 | 传递给 JSONtoXML 政策的输入 (JSON) 无效或格式错误。 |
原因:缺少输入载荷
在 JSONtoXML 政策中,如果 <Source>
元素中指定的变量内容(载荷)为空,则会发生此错误。
例如,如果 JSONtoXML 政策中的 <Source>
元素设置为 request
或 response
变量,并且这些元素本应包含 JSON 载荷,但如果载荷为空,则会发生错误。
诊断
标识出错的 JSONtoXML 政策。您可以在错误响应的
faultstring
元素中找到此信息。例如,在以下faultstring
中,政策名称为Convert-JSONToXML
:"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
在失败的 JSONtoXML 政策 XML 中检查
<Source>
元素并确定指定的变量。例如,以下 JSONtoXML 政策的<Source>
元素已设置为request
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML"> <DisplayName>Convert-JSONToXML</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </JSONToXML>
检查指定给政策中的
<Source>
元素的变量是否为空。如果为空,则会导致错误。在上面所示的 JSONtoXML 政策示例中,客户端发送的请求载荷(即请求正文)为空。
例如:
curl -v "http://your_host_alias/v1/testjsontoxml" -H "Content-Type: application/json"
其中 your_host_alias 是用于访问您的 API 的公共域名,如替换文件中的
virtualhosts.hostAliases
属性中所配置。 请参阅指定配置替换。由于 JSON 响应载荷为空,您将收到错误代码:
steps.json2xml.ExecutionFailed
如果
<Source>
元素设为响应,但后端服务器传递的载荷为空,则可能会发生此错误。
解决方法
确保传递给 <Source>
元素中 JSONtoXML 政策的输入是有效的 JSON 载荷且不为空。
如需解决 JSONtoXML 政策示例的问题,请传递有效的 JSON 载荷。例如:
创建名为
city.json
且包含以下内容的文件:{ "Name":"Apigee", "City":"Bengaluru", "Pincode":"560016" }
使用 curl 命令进行 API 调用,如下所示:
curl -v "http://your_host_alias/v1/testxmltojson" -H "Content-Type: application/json" -X POST -d @company.json
其中 your_host_alias 是用于访问您的 API 的公共域名,如替换文件中的
virtualhosts.hostAliases
属性中所配置。 请参阅指定配置替换。
原因:输入无效或格式错误
如果 JSONtoXML 政策解析的输入无效或格式错误,您便会收到此错误。
例如,如果将以下无效的 JSON 作为输入提供给 JSONtoXML 政策,
[
"args": ["name" : "Google" ]
]
您将收到以下错误:
"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
诊断
标识出错的 JSONtoXML 政策。您可以在错误响应的
faultstring
元素中找到此信息。例如,在以下faultstring
中,政策名称为Convert-JSONToXML
:"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
检查在失败 JSONtoXML 政策的 XML 中指定的
<Source>
元素。例如,以下 JSONtoXML 政策的<Source>
元素已设置为request
变量:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML"> <DisplayName>Convert-JSONToXML</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </JSONToXML>
验证在
<Source>
元素中指定的输入是否为有效的 JSON 载荷。如果输入无效或格式错误,则会导致错误。假设将以下无效 JSON 传递给政策
[ "args": ["name" : "Google" ] ]
以下示例 API 调用展示了请求是如何传递的:
curl -v "http://your_host_alias/v1/testjsontoxml" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "Google" ]]'
其中 your_host_alias 是用于访问您的 API 的公共域名,如替换文件中的
virtualhosts.hostAliases
属性中所配置。 请参阅指定配置替换。在请求中传递的 JSON 载荷无效,因为 JSON 对象的开头和结尾是方括号 ([ ])。因此,您会收到错误代码:
steps.json2xml.ExecutionFailed
如果
<Source>
元素设为响应,但 JSON 响应载荷无效或格式错误,也有可能发生此错误。
解决方法
确保传递给 <Source>
元素中的 JSONtoXML 政策的输入有效且格式无误。
如需解决上述 JSONtoXML 政策示例的问题,请按如下所示传递有效的 JSON 载荷请求:
{
"args" : {
"name" : "Google"
}
}
OutputVariableIsNotAvailable
错误代码
steps.json2xml.OutputVariableIsNotAvailable
错误响应正文
{ "fault": { "faultstring": "JSONToXML[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.json2xml.OutputVariableIsNotAvailable" } } }
错误示例
{
"fault": {
"faultstring": "JSONToXML[Check-JSONToXML]: Output variable is not available.",
"detail": {
"errorcode": "steps.json2xml.OutputVariableIsNotAvailable"
}
}
}
原因
如果在 JSONtoXML 政策的 <Source>
元素中指定的变量类型为字符串,且未定义 <OutputVariable>
元素,则会发生此错误。如果在 <Source>
元素中定义的变量类型为字符串,则 <OutputVariable>
元素是必需的。
诊断
标识出错的 JSONtoXML 政策。您可以在错误响应的
faultstring
元素中找到此信息。例如,在以下faultstring
中,政策名称为Check-JSONToXML
:"faultstring": "JSONToXML[Check-JSONToXML]: Output variable is not available."
在失败的 JSONtoXML 政策中,验证是否缺失
<OutputVariable>
。以下 JSONtoXML 政策示例缺失
<OutputVariable>
元素:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="JSONToXML"> <DisplayName>Check-JSONToXML</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <Source>PostalCode</Source> </JSONToXML>
确定
<Source>
元素中指定的变量类型:- 在首次定义变量的 API 代理中找到代码。
- 确定首次在其中定义并填充变量的政策后,您需要按以下方式确定该变量的类型:
- 检查 type 特性的值(如果存在)。
- 如果 type 特性不存在,则变量将被视为字符串。
- 如果变量的类型是字符串,则会导致错误。如需了解常见变量及其类型,请参阅变量参考文档。
例如,请查看上述 JSONtoXML 政策中的
PostalCode
变量。例如,假设 AssignMessage 政策用于将值分配给名为
PostalCode
的变量,如下所示:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_PostalCode"> <DisplayName>Assign_PostalCode</DisplayName> <Properties/> <AssignVariable> <Name>PostalCode</Name> <Value>{"value":"56008"}</Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
请注意,在
<AssignVariable>
中设置的变量类型是字符串。因此,变量PostalCode
的类型为字符串。现在,回想一下,JSONtoXML 政策的
<Source>
元素中使用了PostalCode
变量:<Source>PostalCode</Source>
由于
PostalCode
类型为字符串且缺失<OutputVariable>
元素,因此您会收到错误代码:steps.json2xml.OutputVariableIsNotAvailable
解决方法
请确保在 JSONToXML 政策的 <Source>
元素中指定的变量类型为字符串,且在政策内定义了 <OutputVariable>
元素。
如需更正上述 JSONToXML 政策,请添加 <OutputVariable>
元素,如下所示。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="JSONToXML">
<DisplayName>Check-JSONToXML</DisplayName>
<Properties/>
<Options>
<NullValue>NULL</NullValue>
<NamespaceBlockName>#namespaces</NamespaceBlockName>
<DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
<NamespaceSeparator>:</NamespaceSeparator>
<TextNodeName>#text</TextNodeName>
<AttributeBlockName>#attrs</AttributeBlockName>
<AttributePrefix>@</AttributePrefix>
<InvalidCharsReplacement>_</InvalidCharsReplacement>
<ObjectRootElementName>Root</ObjectRootElementName>
<ArrayRootElementName>Array</ArrayRootElementName>
<ArrayItemElementName>Item</ArrayItemElementName>
</Options>
<OutputVariable>response</OutputVariable>
<Source>PostalCode</Source>
</JSONToXML>
InCompatibleTypes
错误代码
steps.json2xml.InCompatibleTypes
错误响应正文
{ "fault": { "faultstring": "JSONToXML[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.json2xml.InCompatibleTypes" } } }
错误示例
{
"fault": {
"faultstring": "JSONToXML[JSONToXML_checktype]: String can not be assigned to message type.",
"detail": {
"errorcode": "steps.json2xml.InCompatibleTypes"
}
}
}
原因
如果 <Source>
元素和 <OutputVariable>
元素中定义的变量类型不同,则会发生此错误。<Source>
元素中包含的变量类型和 <OutputVariable>
元素必须完全匹配。
有效类型为 message
和 string
。
诊断
标识出错的 JSONtoXML 政策。您可以在错误响应的
faultstring
元素中找到此信息。例如,在以下faultstring
中,政策名称为JSONToXML_checktype
:"faultstring": "JSONToXML[JSONToXML_checktype]: String can not be assigned to message type."
在失败的 JSONtoXML 政策中,请注意
<OutputVariable>
和<Source>
中指定的值。请参考以下政策示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="JSONToXML_checktype"> <DisplayName>JSONToXML_checktype</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <OutputVariable>response</OutputVariable> <Source>PostalCode</Source> </JSONToXML>
确定在
<Source>
和<OutputVariable>
元素中指定的变量类型:- 在首次定义上述每个变量的 API 代理中找到代码。
- 确定首次在其中定义并填充变量的政策后,您需要按以下方式确定该变量的类型:
- 检查 type 特性的值(如果存在)。
- 如果 type 特性不存在,则变量将被视为字符串。
- 如果在
<Source>
中指定的变量类型是字符串,而<OutputVariable>
的类型是消息,或刚好相反,则会导致错误。如需了解常见变量及其类型,请参阅变量参考文档。
例如,假设 AssignMessage 政策用于将值分配给名为
PostalCode
的变量,如下所示:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_PostalCode"> <DisplayName>Assign_PostalCode</DisplayName> <Properties/> <AssignVariable> <Name>PostalCode</Name> <Value>{"value":"56008"}</Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
请注意,在
<AssignVariable>
中设置的变量类型是字符串;因此,变量PostalCode
的类型是字符串。现在,回想一下,JSONtoXML 政策的
<Source>
元素中使用了PostalCode
变量:<Source>PostalCode</Source>
同样,回想一下,JSONtoXML 政策的
<OutputVariable>
元素中使用了response
变量:<OutputVariable>response</OutputVariable>
由于
PostalCode
的类型是字符串,而response
变量的类型是消息,这两种类型并不兼容,因此您将收到错误代码:steps.json2xml.InCompatibleTypes
如果
<Source>
元素中的变量类型为message
,但<OutputVariable>
元素中的变量类型为字符串,也可能会出现上述错误。
解决方法
确保 <Source>
元素和 <OutputVariable>
元素中定义的变量类型始终相同。<Source>
元素中包含的变量类型和 <OutputVariable>
元素必须完全匹配。也就是说,请确保 <Source>
和 <OutputVariable>
元素的类型均为字符串或消息。
如需更正上面所示的 JSONtoXML 政策,您可以使用 AssignMessage 政策声明另一个类型为字符串的变量 PostalCode_output
,并在 JSONtoXML 政策的 <OutputVariable>
元素中使用此变量。
修改后的 AssignMessage 政策:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_PostalCode">
<DisplayName>Assign_PostalCode</DisplayName>
<Properties/>
<AssignVariable>
<Name>PostalCode</Name>
<Value>{"value":"56008"}</Value>
<Ref/>
</AssignVariable>
<AssignVariable>
<Name>PostalCode_output</Name>
<Ref/>
</AssignVariable>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>
修改后的 JSONToXML 政策:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="JSONToXML">
<DisplayName>JSONToXML_checktype</DisplayName>
<Properties/>
<Options>
<NullValue>NULL</NullValue>
<NamespaceBlockName>#namespaces</NamespaceBlockName>
<DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
<NamespaceSeparator>:</NamespaceSeparator>
<TextNodeName>#text</TextNodeName>
<AttributeBlockName>#attrs</AttributeBlockName>
<AttributePrefix>@</AttributePrefix>
<InvalidCharsReplacement>_</InvalidCharsReplacement>
<ObjectRootElementName>Root</ObjectRootElementName>
<ArrayRootElementName>Array</ArrayRootElementName>
<ArrayItemElementName>Item</ArrayItemElementName>
</Options>
<OutputVariable>PostalCode_output</OutputVariable>
<Source>PostalCode</Source>
</JSONToXML>
InvalidSourceType
错误代码
steps.json2xml.InvalidSourceType
错误响应正文
{ "fault": { "faultstring": "JSONToXML[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.json2xml.InvalidSourceType" } } }
错误示例
{
"fault": {
"faultstring": "JSONToXML[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
"detail": {
"errorcode": "steps.json2xml.InvalidSourceType"
}
}
}
原因
如果用于定义 <Source>
元素的变量类型无效,则会出现此错误。变量的有效类型为 message
和 string
。
诊断
标识用于 JSONToXML 政策的无效源类型。您可以在错误消息中找到此信息。例如,在以下错误中,无效类型为整数。
"faultstring": "JSONToXML[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
检查失败的特定 API 代理中的所有 JSONtoXML 政策。在失败的 JSONtoXML 政策中,记下
<Source>
中所指定变量的名称。以下示例政策的
<Source>
元素中指定了名为 EmployeeID 的变量:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="JSONToXML">
<DisplayName>Check_SourceType</DisplayName>
<Properties/>
<Options>
<NullValue>NULL</NullValue>
<NamespaceBlockName>#namespaces</NamespaceBlockName>
<DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
<NamespaceSeparator>:</NamespaceSeparator>
<TextNodeName>#text</TextNodeName>
<AttributeBlockName>#attrs</AttributeBlockName>
<AttributePrefix>@</AttributePrefix>
<InvalidCharsReplacement>_</InvalidCharsReplacement>
<ObjectRootElementName>Root</ObjectRootElementName>
<ArrayRootElementName>Array</ArrayRootElementName>
<ArrayItemElementName>Item</ArrayItemElementName>
</Options>
<OutputVariable>request</OutputVariable>
<Source>EmployeeID</Source>
</JSONToXML>
确定
<Source>
元素中指定的变量类型:- 在首次定义此变量的 API 代理中找到代码。
- 确定首次在其中定义并填充变量的政策后,您需要按以下方式确定该变量的类型:
- 检查 type 特性的值(如果存在)。
- 如果 type 特性不存在,则变量将被视为字符串。
- 如果在
<Source>
中指定的变量类型不是消息或字符串,则会导致错误。如需了解常见变量及其类型,请参阅变量参考文档。
例如,假设 ExtractVariables 政策用于从 JSON 载荷中提取值,并将该值设为整数类型的变量
EmployeeID
,如下所示:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>request</Source> <JSONPayload> <Variable name="EmployeeID" type="integer"> <JSONPath>$.ID</JSONPath> </Variable> </JSONPayload> </ExtractVariables>
现在,回想一下,JSONtoXML 政策的
<Source>
元素中使用了EmployeeID
变量:<Source>EmployeeID</Source>
由于此变量的类型为
Integer
,它不是有效的<Source>
类型,因此 API 代理会失败并显示以下错误:steps.json2xml.InvalidSourceType
解决方法
确保用于指定 <Source>
元素的变量类型有效。有效的 <Source>
类型为 message
和 string
。
为避免 JSONToXML 政策出现上述错误,您可以使用类型为消息或任何其他字符串(即有效的 JSON 载荷)的请求变量。