0

メッセージストアと転送プロセスに必要なすべてのプロセスを実行しました activeMQ 5.5.1 をインストールし、必要な Jar を WSO2eSb にコピーしました AXIS2 ファイル構成もこのように変更しました

<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="myTopicConnectionFactory" locked="false">
            <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
        </parameter>

        <parameter name="myQueueConnectionFactory" locked="false">
            <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
        </parameter>

        <parameter name="default" locked="false">
            <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
            <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
            <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
            <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
        </parameter>
    </transportReceiver>

INFO - JMSSender JMS Sender が開始されました [2013-07-23 17:02:18,752] INFO - JMSSender JMS Transport Sender が初期化されました... この後、JMS MESSAGE STORE を作成しました <

messageStore name="faisal" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
   <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
   <parameter name="store.jms.destination">transport.jms.ConnectionFactoryJNDIName</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   <parameter name="store.jms.cache.connection">false</parameter>
</messageStore>

スケジュールされたメッセージ転送プロセッサを追加します

<messageProcessor name="process5" class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor" messageStore="faisal" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="interval">1000</parameter>
   <parameter name="max.delivery.attempts">10</parameter>
   <parameter name="message.processor.reply.sequence">Mail_Seq</parameter>
</messageProcessor>

そして、このような私のプロキシサービス構成

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Message" transports="https,http,jms" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property name="faisal" value="faisal" scope="default" type="STRING"/>
         <store messageStore="faisal"/>
         <log level="full"/>
      </inSequence>
      <outSequence>
         <log level="full"/>
      </outSequence>
   </target>
   <description></description>
</proxy>

メッセージをメッセージ ストアに保存するが、転送が間違っている メッセージが WSO2esb で失われたメッセージを処理しているにもかかわらず、IF エンドポイントが機能しない このメッセージを送信する

[2013-07-23 17:02:18,817]  WARN - ForwardingJob Property target.endpoint not found in the message context , Hence removing the message 
[2013-07-23 17:02:18,869]  WARN - ForwardingJob Property target.endpoint not found in the message context , Hence removing the message 
[2013-07-23 17:08:07,419]  WARN - JMSMessageStore Consumer Receiving time out is not passed in, Setting to default value of 60 secs
4

2 に答える 2

0

これは、ターゲット エンドポイントを定義していないためです。したがって、メッセージを配信する場所はありません。したがって、メッセージは削除されます。シナプス構成にエンドポイントが含まれていません。

このブログ投稿が役立つ場合があります。

http://isharaaruna.blogspot.com/2012/09/jms-transports-in-wso2-esb-with-activemq.html

于 2013-07-24T05:42:43.287 に答える
0

バックエンドの正しい URI を使用して、次のようにアドレス エンドポイントを作成します。

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="Service1EP">
   <address uri="http://localhost:8080/services/service1"">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
   </address>
</endpoint>

次に、inSequence に次の行を追加して、プロキシ サービスでそのエンドポイントを参照します。

<property name="target.endpoint" value="Service1EP" scope="default" type="STRING"/>
于 2013-07-24T06:35:22.193 に答える