2016-04-26 63 views
0

我有一個基本的序列,調用一個端點並通過數據服務更新數據庫中的 響應。我已經完成了必要的 ,並且在調用端點時我 獲得了預期的響應(此響應已打印在日誌文件中)。WSO2 ESB - Xpath表達式在SOAP響應中返回空值

<?xml version='1.0' encoding='utf-8'?> 
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
    <soapenv:Header> 
     <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:mustUnderstand="1"> 
      <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-19033"> 
       <wsu:Created>2016-04-26T04:35:21.802Z</wsu:Created> 
       <wsu:Expires>2016-04-26T04:40:21.802Z</wsu:Expires> 
      </wsu:Timestamp> 
     </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
     <ns2:purchaceFromMMRResponse xmlns:ns2="http://flw.mwt.mobitel.com/"> 
      <return> 
       <amount>1.0</amount> 
       <date>26042016</date> 
       <mobile>0711325362</mobile> 
       <recipetNo>20160426100525249665</recipetNo> 
       <resultCode>1999</resultCode> 
       <resultDesc>Dear Customer,Service is not available due to a technical failure. Please try again in a while .</resultDesc> 
       <time>100449</time> 
       <transactionId>SDC311521</transactionId> 
      </return> 
     </ns2:purchaceFromMMRResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

爲了調用數據服務(和更新響應字段)我需要從肥皂獲取響應值response.For爲此,我使用XPath表達式 得到,這將在屬性被設置的值和然後用於數據服務。

<property expression="//ns2:return/ns2:mobile/text()" 
     name="mobile" scope="default" type="STRING" xmlns:ns2="http://flw.mwt.mobitel.com/"/> 

當我做一個自定義日誌

<log level="custom"> 
     <property expression="$ctx:mobile" name="mobile"/> 
</log> 

是沒有得到打印的值的值設置爲財產後。請糾正我如果我在這裏做錯了什麼。

回答

1

節點回報移動不屬於NS2命名空間,以//返回/移動/文()

+0

感謝您的回答,它的工作,但我不明白,爲什麼要試圖它們不是命名空間的一部分,''這行不是說明命名空間。 – Yasothar

+0

,所有子節點都屬於「http://flw.mwt.mobitel.com/」。但是,對於,您只需指定一個名稱空間,其前綴爲ns2,並且說purchaseOfFromMMRResponse屬於此名稱空間。但是沒有爲子節點指定ns2前綴:它們不屬於這個ns –

+0

對不起,我明白,結果和移動設備沒有名稱空間前綴。我的錯。非常感謝。 – Yasothar