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>
是沒有得到打印的值的值設置爲財產後。請糾正我如果我在這裏做錯了什麼。
感謝您的回答,它的工作,但我不明白,爲什麼要試圖它們不是命名空間的一部分,''這行不是說明命名空間。 –
Yasothar
與,所有子節點都屬於「http://flw.mwt.mobitel.com/」。但是,對於,您只需指定一個名稱空間,其前綴爲ns2,並且說purchaseOfFromMMRResponse屬於此名稱空間。但是沒有爲子節點指定ns2前綴:它們不屬於這個ns –
對不起,我明白,結果和移動設備沒有名稱空間前綴。我的錯。非常感謝。 – Yasothar