2011-12-06 2 views
1

私は15のサービスを持つシステムを持っています。私はラクダとJMSリモーティングの新機能です。 15のサービスでは、1つのサービスにつき1つの着信キューが必要であると思っていました。私は最初の結合(org.apache.camel.example.server.Multiplier)が働く見つけいくつのApache Camelキューが必要ですか?

org.apache.camel.example.server.Treble implements two interfaces  
org.apache.camel.example.server.Multiplier and org.apache.camel.example.server.Divider. I bind the two interfaces to the same JMS queue: jms:queue:numbers 

<bean id="multiplier" class="org.apache.camel.spring.remoting.CamelServiceExporter"> 
      <property name="uri" value="jms:queue:numbers" /> 
      <property name="service"> 
       <bean class="org.apache.camel.example.server.Treble" /> 
      </property> 
      <property name="serviceInterface" value="org.apache.camel.example.server.Multiplier" /> 
    </bean> 
<bean id="divider" class="org.apache.camel.spring.remoting.CamelServiceExporter"> 
      <property name="uri" value="jms:queue:numbers" /> 
      <property name="service"> 
       <bean class="org.apache.camel.example.server.Treble" /> 
      </property> 
      <property name="serviceInterface" value="org.apache.camel.example.server.Divider" /> 
    </bean> 

しかし、キューが1つのインタフェースだけにバインドできるようです。クライアント側では、org.apache.camel.example.server.Dividerのプロキシを取得し、divide()を呼び出します。メッセージはサーバー側に届きます。しかしCamelがメッセージを処理しようとすると、camelはjms:queue:numbersにバインドされた最初のインタフェースのプロキシをキャッシュするだけです。したがって、メッセージを処理して例外をスローできませんでした。

私はラクダでjmsリモーティングを使用したいのですが、2つのキュー(in/out)/クラスが必要ですか?それは高価ですか?あなたは同じ、着信エンドポイントを使用するすべてのサービスを必要とする場合は

答えて

1

は、ルータにコメントをhttp://camel.apache.org/dynamic-router.html

+0

感謝を使用しますが、何も私のサービスは、同じデータ入力がありません。彼らはすべて異なるデータ入力を持っています。 – KingAndrew

+0

申し訳ありませんが、私は同じデータを意味しませんでした、私は同じエンドポイントを意味しました。 – Manoj

関連する問題