1

私の現在のシナリオは、データサービスから公開されたWebサービスがあり、ユーザーの名前を指定するとユーザーの電子メールアドレスが返されるというものです。ここで、ESBでこのWebサービスを使用し、プロパティでこのWebサービスから電子メールIDを取得し、LOGメディエーターを使用してコンソールに表示したいと思います。私は今何をすべきですか、そしてどのように?

このばかげた質問で申し訳ありませんが、私はwso2esbの最新メンバーです。だから私を助けてください。

Now ihave a response like:
<brs:getRecipientKeyResponse xmlns:brs="http://brs.carbon.wso2.org">
 <brs:MailRecipient xsi:type="ax2338:MailRecipient" xmlns:ax2338="http://email.samples/xsd" xmlns:ax2337="http://email.samples/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ax2337:recipient>kevin</ax2337:recipient>
 </brs:MailRecipient>
</brs:getRecipientKeyResponse>

Ihave to get the recipient element from this response and put this in payload. My complete sequence for this is:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="receiveSeq">
   <log>
      <property name="getRecipient" value="------------Trying to get data Fom BRS Response----------------------------"/>
      <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ax2337="http://email.samples/xsd" name="Recipient" expression="//ax2337:recipient"/>
   </log>
   <payloadFactory>
      <format>
         <p:GetEmailDetails xmlns:p="http://ws.wso2.org/dataservice">
            <xs:name xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:name>
         </p:GetEmailDetails>
      </format>
      <args>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:ax2337="http://email.samples/xsd" expression="//ax2337:recipient"/>
      </args>
   </payloadFactory>
   <log>
      <property xmlns:ns="http://org.apache.synapse/xsd" name="getName" expression="get-property('Recipient')"/>
   </log>
   <send receive="DBSeq">
      <endpoint key="emailServiceEP"/>
   </send>
</sequence>

<!--this part is not able to get data --->
 <property xmlns:ns="http://org.apache.synapse/xsd" name="getName" expression="get-property('Recipient')"/>
4

2 に答える 2

1

そのリクエスト側でwso2dsstryitサービスを使用して、「?」の代わりにペイロードファクトリにコードをコピーします。$ 1、$ 2をこのように保持し、上記の順序に従って以下の引数を渡します。応答私はそれがあなたのために役立つと思います

<payloadFactory>
            <format>
               <p:insert_emp_operation xmlns:p="http://ws.wso2.org/dataservice">
                  <xs:eno xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:eno>
                  <xs:ename xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:ename>
                  <xs:esal xmlns:xs="http://ws.wso2.org/dataservice">$3</xs:esal>
               </p:insert_emp_operation>
            </format>
            <args>
               <arg expression="get-property('eno')"/>
               <arg expression="get-property('ename')"/>
               <arg expression="get-property('esal')"/>
            </args>
         </payloadFactory>
         <send receive="Error_Seq">
            <endpoint>
               <address uri="http://localhost:9764/services/emp_DataService/" format="soap11"/>
            </endpoint>
         </send>
于 2013-03-11T10:48:49.347 に答える
0

Dataserviceが実装されているので、wso2esbで作成できるプロキシへのエンドポイントURLとしてそれを指定します。プロキシにリクエストを送信すると、アウトシーケンスで、データサービスの応答を受信します。「level=full」でログを記録するだけで、完全な応答が表示されます。プロパティメディエーターを使用し、xpathを実行して必要な値を選択します。サンプルconf:

 <proxy name="StockQuoteProxy">
        <target>
            <endpoint>
                <address uri="DS endpoint"/>
            </endpoint>
            <outSequence>
               <log level="full">
                  <property name="email" expression="xpath from the email attribute in the rseponse"/>
                </log>
                <send/>
            </outSequence>
        </target>

    </proxy>

プロキシの作成方法に関するesbサンプルガイドは次のとおりです。

http://docs.wso2.org/wiki/display/ESB460/Proxy+Service+Samples

于 2013-03-07T15:43:03.947 に答える