2016-04-26 6 views
0

私はエンドポイントを呼び出し、データサービス経由でデータベース内の 応答を更新する基本シーケンスを持っています。 を実行しましたが、エンドポイントを呼び出すときには、私は という応答が得られます(この応答はログファイルに出力されています)。WSO2 ESB - Xpath式がSOAP応答でnull値を返します

<?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> 

データサービスを呼び出す(およびレスポンスのフィールドを更新)するために、私はプロパティに設定された値を取得するためにxpath式 を使用し、このresponse.For石鹸から応答値を取得する必要がありますし、その後データサービスで使用されます。私は、カスタムログ

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

を行う際に値が印刷取得されていないプロパティに値を設定した後

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

。私がここで何か悪いことをしているなら、私を修正してください。なぜ、

答えて

1

ノードリターンモバイルが//リターン/モバイル/テキスト(としようと、NS2名前空間に属さない)

+0

は、それが働いて、答えをありがとう、しかし、私は理解していませんそれらは名前空間の一部ではありません。 'この行は名前空間を表していませんか? – Yasothar

+0

の場合、すべての子ノードは「http://flw.mwt.mobitel.com/」に属します。しかし、の場合、接頭辞ns2を持つ名前空間を指定し、この名前空間にpurchaseaceFromMMRResponseが属しているとします。しかし、子ノードにはns2接頭辞が指定されていません。これらはnsに属しません –

+0

申し訳ありませんが、結果とモバイルには名前空間接頭辞がありません。私の悪い。どうもありがとう。 – Yasothar

関連する問題