2016-04-26 127 views
0

我有一個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?

回答

3

NS1沒有在你的屬性定義,請嘗試使用:

<property xmlns:ns="http://org.apache.synapse/xsd" 
xmlns:ns1="wom" 
name="ErrorCode" 
expression="$body/ns1:OrderResponse" 
scope="default" 
type="STRING"/> 

如果你想在XML有效載荷,定義你物業類型爲「OM」