0

次の URL に書かれている手順に従って、WSO2 ESB 4.7.0 と WSO2 MB 2.1.0 の統合に直面しようとしています: http://docs.wso2.org/display/MB210/Integrating+WSO2+ESB

特に、メッセージ ストアをキューとして使用したいと考えています。したがって、「メッセージストアとプロセッサを使用して統合する」という段落に従います。

メッセージ ストアとメッセージ プロセッサを作成し、示されているように事前に ESB と MB を適切に構成しました。最後に、私はこのプロキシを書きました:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="MessageStoreQueueProxy"
   transports="https,http"
   statistics="disable"
   trace="disable"
   startOnLoad="true">
<target>
  <inSequence>
     <send>
        <endpoint>
           <address uri="http://localhost:8080/RestService/rest/servizio"/>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
    <send/>
    <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
    <property name="OUT_ONLY" value="true"/>
    <store messageStore="JMSMS"/>
    <log level="full"/>                    
  </outSequence>
</target>
<description/>
</proxy>

クライアントが MessageStoreQueueProxy サービスを呼び出すと、メッセージ ブローカで「JMSMS メッセージ ストア」カウンタが正しく増加していることがわかりますが、各メッセージの「コンテンツ タイプ」フィールドを見ると、「Java MessageObject アイコン」だけが表示されます。 、一方、「本文フィールド」では、「サポートされていない」値だけを読み取ることができます。

一方、ESB で JMSMS の「メッセージ ストア」を参照すると、メッセージのエンベロープが次のようになっていることがわかります。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
     <root>
        <code>ok</code>
        <documentID>2546</documentID>
     </root>
  </soapenv:Body>
</soapenv:Envelope>

では、なぜ取引中に遺体が失われたのでしょうか。どうすれば体を維持できますか?または、WSO2 MB の ObjectMessage からどのように回復できますか?

どうもありがとう

4

1 に答える 1

2

「メッセージ ストア」は、メッセージを JMS キューにそのまま保持しません。メッセージとその他の情報を Java シリアライズ オブジェクトにシリアライズし、JMS キューに入れます。「メッセージ プロセッサ」がメッセージを処理するとき、JMS キューからメッセージをプルし、さらに処理するために Java シリアライズ オブジェクトをデシリアライズします。

ここで、MB は JMS キューとして使用されます。したがって、Message Store はシリアライズして MB キューに入れます。したがって、Javaオブジェクトをシリアライズすることがわかります。メッセージ ストアを使用する場合、内容を MB で表示することはできません。

于 2013-10-28T04:57:45.307 に答える