0

私は WS02 ESB にまったく慣れていません。私の会社では数か月前に実装しました。

現在、WCF サービスの上に REST レイヤーを配置しようとしています。私が実装しようとしているユース ケースは、モバイル アプリ (iphone、android) が RESTful xml を介して WCF サービスに位置データを提供する位置 API です。

現在のデータ フローは、モバイル アプリ -> REST API -> ESB プロキシ -> WCF サービスのように構成されています。

ペイロードで REST エンドポイントに提供される xml は次のとおりです。

<Location Partner='{API Parnert Name}' Code='{API Partner Code}' Password='{API Partner Password}' Generated='2013-04-16T16:30:15Z'>
  <Latitude>44.5881</Latitude>
  <Longitude>-89.581248</Longitude>
  <Accuracy>75.334</Accuracy>
  <MobileDeviceUID>A1000017B8B437</MobileDeviceUID>
</Location>

この XML を WSO2 ESB 経由でルーティングするために、API とサービス プロキシを作成しました。(すべてが私のマシンでローカルに実行されています)

API は次のように構成されます。

<api xmlns="http://ws.apache.org/ns/synapse" name="API_LOC" context="/WS1/Location">
   <resource methods="POST">
      <inSequence>
         <log level="full" category="DEBUG"/>
         <send>
            <endpoint>
               <address uri="http://localhost:8280/services/WS1LocationProxy/AddLocation" format="soap11"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
         <log level="full"/>
      </outSequence>
   </resource>
</api>

そして、私のプロキシは次のように構成されています:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="WS1LocationProxy" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <log level="full" category="TRACE"/>
         <property name="FORCE_HTTP_1.0" value="true" scope="axis2"/>
         <send>
            <endpoint>
               <address uri="http://localhost:54270/WS1LocationService.svc"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </target>
   <publishWSDL uri="http://localhost:54270/WS1LocationService.svc?wsdl"/>
   <parameter name="useOriginalwsdl">true</parameter>
   <parameter name="interface">WS1LocationService</parameter>
   <parameter name="serviceType">proxy</parameter>
   <description></description>
</proxy>

私の主な質問は次のとおりです。着信 REST 要求の POST ペイロードを、プロキシの WCF サービスに必要な SOAP エンベロープに変換するにはどうすればよいですか。そのようなプロセスの良い例を見つけることができませんでした。

4

1 に答える 1

1

手動で変換する必要はありません..着信 POST リクエストは、ESB で処理するために SOAP メッセージに変換されます.プロキシのログ メディエーターで確認できます..インシーケンスでは..ログ メディエーターを使用して、出力..

<log level="full" >
   <property name ="incoming message" value="*****"/>
</log>
于 2013-04-17T16:05:49.723 に答える