jms - Apache Camel 和 Stomp

标签 jms activemq apache-camel stomp

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

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

根据: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>

...但是,这导致:
  [ #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 一起工作的任何想法?

最佳答案

使用 JMS/ActiveMQ 组件时,您必须使用开放式线路传输。
tcp://localhost:61616或者你有什么。

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

关于jms - Apache Camel 和 Stomp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15044362/

相关文章:

java - 如何使 activemq 真正可靠?当broker断开连接时消息丢失

java - Apache camel,RabbitMQ 如何发送消息/对象

java - 使用 Apache Camel 和 ActiveMQ 时如何处理系统崩溃

java - Apache Camel 。 throttle 部分路线

jboss - 使用Jboss资源适配器连接ActiveMQ时配置sendTimeout

JMS 具有强制可扩展性(Active-Active-...-Active)和排序?

spring - Activemq 停止在大量消息上发送消息

java - MAC OS系统如何安装ActiveMQ服务器?

java - 让磨床与 jython 一起工作

java - Apache Camel CXF 响应 202 而不是 200