5

私は、アーキテクチャが次のようなソリューションを開発しています。

  PHP -> JMS -> Camel -> several web services and endpoints.

によると: http: //activemq.apache.org/php.html

...JMSを使用するにはPHPSTOMPクライアントを使用する必要があります。それはうまくいきます。

また、ActiveMQSTOMPJavaクライアントを使用してJMSから受信しました。

しかし、JMSメッセージのルーティングにはCamelを使用したいと思います。CamelをJMS/Stompで動作させることができないようです。

https://github.com/fusesource/stompjmsを見てみました

...しかし、Camelでそれを機能させる方法がわかりません。

また、STOMPを指定するbrokerURLを使用してSpringcamel-context.xmlを試しました。

  <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
      <property name="connectionFactory">
          <bean class="org.apache.activemq.ActiveMQConnectionFactory">
              <property name="brokerURL" value="stomp://localhost:61613" />
              <property name="userName" value="admin" />
              <property name="password" value="AmChamDev" />
          </bean>
      </property>
  </bean>

...しかし、その結果:

  [ #0 - JmsConsumer[/queue/test]] ultJmsMessageListenerContainer WARN  Could not 
  refresh JMS Connection for destination '/queue/test' - retrying in 5000 ms. 
  Cause: Could not create Transport. 
  Reason: java.io.IOException: Transport scheme NOT recognized: [stomp]

CamelをJMS/Stompで動作させる方法について何かアイデアはありますか?

4

2 に答える 2

6

JMS / ActiveMQコンポーネントを使用する場合は、オープンワイヤトランスポートを使用する必要があります。

tcp://localhost:61616またはあなたは何を持っていますか。

しかし、心配しないでください。STOP(またはその他の使用可能なトランスポート)を使用してActiveMQにメッセージを送信する場合でも、デフォルト(オープンワイヤ)トランスポートを使用するJMS api(したがってCamelのActiveMQコンポーネント)を使用してまったく同じメッセージを受信できます。

于 2013-02-23T20:08:39.510 に答える
2

Camelのドキュメントhttp://camel.apache.org/stomp.htmlによると、追加の依存関係を含める必要があります。

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-stomp</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
于 2015-05-20T12:12:54.890 に答える