SOAP响应处理
问题描述:
我有一个SOAP服务,我试图通过WSO2 ESB中的API访问。SOAP响应处理
下面是来自该SOAP服务的方法的响应体。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="wom">
<SOAP-ENV:Body>
<ns1:OrderResponse>
<return>
<ResponseHeader>
<ResponseCode>1</ResponseCode>
<Description>CIR is already exists</Description>
</ResponseHeader>
</return>
</ns1:OrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
而且我按照以下链接访问上面xml响应的Body/OrderResponse。
[https://docs.wso2.com/display/ESB481/Synapse+XPath+Variables#SynapseXPathVariables- $体] [1]下面
是在API的outSequence标签我试图登录的属性值。
<outSequence>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd"
name="ErrorCode"
expression="$body/ns1:OrderResponse"
scope="default"
type="STRING"/>
</log>
</outSequence>
我都尝试$体/ NS1:OrderResponse和$体/ OrderResponse但ErrorCode属性在日志中为空。 但是当我尝试$ body可以采取整个响应(这与我之前提到的xml响应相同)。我怎样才能得到OrderResponse?
答
NS1没有在你的属性定义,请尝试使用:
<property xmlns:ns="http://org.apache.synapse/xsd"
xmlns:ns1="wom"
name="ErrorCode"
expression="$body/ns1:OrderResponse"
scope="default"
type="STRING"/>
如果你想在XML有效载荷,定义你物业类型为“OM”