2016-08-19 9 views
0

私はWSO2 ESBとDDSを使用してデータベースからデータを読み取るAPIを作成し、最後にこの応答を得ました。スクリプトメディエーターを使用してこのXMLをJsonに変換する方法は?私に例を挙げてください。WSO2 - スクリプトメディエータを使用してこのXMLをJsonに変換する方法

<?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
<soapenv:Body> 
    <employeeCollection xmlns="http://employee.us.wso2.com"> 
     <employee> 
      <EmployeeID>17</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 
     <employee> 
      <EmployeeID>18</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 
     <employee> 
      <EmployeeID>19</EmployeeID> 
      <FirstName>jak</FirstName> 
      <LastName>123</LastName> 
      <Team>ok</Team> 
     </employee> 

    </employeeCollection> 
</soapenv:Body> 

そして、これはコンフィギュレーションに

<resource methods="POST" uri-template="/team"> 
    <inSequence> 
    <sequence key="conf:/SendSelectWithTeam"/> 
    <call> 
     <endpoint> 
      <address uri="https://192.168.2.165:9453/services/EmployeesDataService/" format="soap12"/> 
     </endpoint> 
    </call> 

    <respond/> 
    </inSequence> 

追加の質問です:どのようにスクリプトメディエーターを使用して "社員" のそれぞれの値を取得するには?

答えて

1

これを直接jsonに変換したい場合は、スクリプトメディエータを使用して手動で行う必要はありません。

このようにESBプロキシ(またはAPI)のアウトシーケンスを更新すると、応答xmlがjsonに変換されます。

<outSequence> 
    <property name="messageType" value="application/json" scope="axis2"/> 
    <send/> 
</outSequence> 

詳細については、WSO2 Docsを参照してください。

編集:あなたは<respond>伝達物質を使用する場合は、あなたの場合は

、それはシーケンスをバイパスし、そして私の提案は動作しません。あなたはそれを働かせる2つのオプションがあります。

1)callrespondメディエータの代わりにSendメディエータを使用します。

又は

2)loopbackメディエーターの代わりrespondメディエーターを使用。

+0

おかげで、その作業を。しかし、私は応答を変更したい。スクリプトを使用する場合、最初の "EmployeeID"の値を取得する方法は? –

+0

これを試してください。 ' ' – Bee

+0

getPayloadJSONの戻り値はnullです –

0

How to convert SOAP response with xsi values to json in WSO2esb

このリンクを参照してください以下のような設定ファイルのプロキシoutSequence設定を変更してください:

<outSequence xmlns="http://ws.apache.org/ns/synapse"> 
    <property name="messageType" value="application/json/badgerfish" scope="axis2" type="STRING"></property> 
    <send></send> 
</outSequence> 
関連する問題