Apache Camel和Stomp

Joh*_*sus 5 activemq-classic jms stomp apache-camel

我正在开发一个解决方案,其架构是:

  PHP -> JMS -> Camel -> several web services and endpoints.
Run Code Online (Sandbox Code Playgroud)

根据:http://activemq.apache.org/php.html

...我应该使用PHP STOMP客户端来使用JMS.这很好用.

我还使用ActiveMQ STOMP Java客户端从JMS接收.

但是,我想使用Camel来路由JMS消息.我似乎无法让Camel与JMS/Stomp合作.

我看了一下https://github.com/fusesource/stompjms

...但我不知道如何与Camel合作.

我还尝试使用一个指定STOMP的brokerURL的Spring camel-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>
Run Code Online (Sandbox Code Playgroud)

......但是,这会导致:

  [ #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]
Run Code Online (Sandbox Code Playgroud)

关于如何让Camel与JMS/Stomp一起工作的任何想法?

Pet*_*der 6

使用JMS/ActiveMQ组件时,必须使用开放式电汇传输.

tcp://localhost:61616 或者你有什么.

但别担心.即使使用STOP(或任何其他可用传输)向ActiveMQ发送消息,您也可以使用默认(开放线路)传输使用JMS api(以及Camel中的ActiveMQ组件)接收相同的消息.