2017-05-31 8 views
0

camelルートを使用してアクティブなmqでwsdlリクエスト本体を送信することは可能ですか?もし私がこれを達成できるのであれば、私はwsdlリクエストボディをキューに入れようとしているが、起こっていないサンプルコードです。camelルートを使用してactivemqでwsdlリクエスト本文を送信する方法

<route id="report"> 
      <from id="_from2" uri="direct:reportIncident"/> 
      <to id="_to3" uri="activemq:queue:in.incident.report"/> 
      <process id="_process1" ref="reportIncidentProcessor"/> 
      <to id="_to1" uri="log:output"/> 
     </route> 

私は私のfuse.logファイルで例外の下になった

org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 20000 millis due reply message with correlationID: Camel-ID-NISB-TEC-C3880-54427-1496206891706-5-5 not received on destination: temp-queue://ID:NISB-TEC-C3880-54424-1496206882676-7:1:1. Exchange[ID-TEC-1496206891706-5-4] 
    at org.apache.camel.component.jms.reply.ReplyManagerSupport.processReply(ReplyManagerSupport.java:153)[246:org.apache.camel.camel-jms:2.17.0.redhat-630077] 
    at org.apache.camel.component.jms.reply.TemporaryQueueReplyHandler.onTimeout(TemporaryQueueReplyHandler.java:62)[246:org.apache.camel.camel-jms:2.17.0.redhat-630077] 
+0

メッセージはAMQに送信されますが、もう一方の側では誰もそれを消費せず、返信を送信しません20秒。通信が要求応答であることを望まない場合、またはそれを必要とする場合は、それに応じて交換パターンを設定するか、[エンドポイントを設定する](http://camel.apache.org/jms.html)を設定する必要があります。 – Ralf

答えて

1

Webサービスの呼び出しはデフォルトでINOUTされていて、ActiveMQのに送信するときには、同じスタイルは、それが返事を期待していることを伝えますあなたが得ることはないので、その例外が表示されます。

あなたはActiveMQのにInOnly(火と忘れて)送信メッセージにしたいのであれば、あなたは

<to id="_to3" uri="activemq:queue:in.incident.report"/> 

<to id="_to3" pattern="InOnly" uri="activemq:queue:in.incident.report"/> 

でより多くを参照してくださいする必要があることを指定する必要があります。 - http://camel.apache.org/event-message.html - http://camel.apache.org/request-reply.html

+0

大変感謝しています。しかし、誰が私はwsdlリクエストボディ/パラメータをラクダルートnで取得して、それらをキューに送ることができます。この例外が発生した原因:javax.jms.JMSException:コンテンツから本文を構築できませんでした。ブローカにはシリアライズ可能なクラスを使用できません。理由:java.lang.ClassNotFoundException:禁止されたクラスorg.apache.cxf.message.MessageContentsList!このクラスはObjectMessageペイロードとしてシリアライズすることはできません。信頼できるクラスを構成する方法の詳細については、http://activemq.apache.org/objectmessage.htmlを参照してください。 –

+0

メッセージを、JMSを介してStringやbyte []などの前に送信できるタイプに変換する必要があります。送信 - 'convertBodyTo'を参照してください。 –

関連する問題