activemq中TCP端点的简单路由错误吗?

时间:2008-11-05 14:52:05

标签: jms activemq apache-camel

我正在尝试使用ActiveMQ启动一个简单的演示,演示TCP到TCP路由。我在activemq.xml配置文件中编写了camel上下文中的端点和路由。

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">

    <package>org.myorg.codec</package>

    <endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&amp;textline=true"/>
    <endpoint id="listener_B" uri="mina:tcp://localhost:42001?sync=false&amp;textline=true"/>

    <route>
        <from uri="activemq:listener_A"/>
        <to uri="activemq:listener_B"/>
    </route>
    <route>
        <from uri="activemq:listener_B"/>
        <to uri="activemq:listener_A"/>
    </route>
</camelContext>

知道为什么这不起作用?

AMQ服务器似乎没有打开侦听端口。

编辑:这里的意图,作为一个简单的演示,是通过两个telnet终端(A和B)连接到ActiveMQ,并能够通过消息队列服务器将消息从一个路由到另一个。稍后,我可能会尝试根据内容进行过滤或路由。

2 个答案:

答案 0 :(得分:1)

我对你的配置文件感到有点困惑。你究竟想做什么?

您已经为使用MINA定义了2个端点(完全不使用ActiveMQ);然后你使用从ActievMQ队列listener_A到listener_B然后listener_B到listener_A(这是一个递归循环)的路由。

也许如果你开始描述你想做什么,我们可以弄清楚XML应该是什么样子。

顺便提一下,如果您只想引用已定义的端点,请使用 ref =“name”属性,而不是 uri =“...”。< / p>

e.g。

<route>
  <from ref="listener_A"/>
  <to ref="listener_B"/>
</route>

所有这一切 - 你往往会变得更好&amp;通过Camel User Forum

加快对Camel的支持

答案 1 :(得分:0)

更多相关内容:

当端点被定义为mina tcp连接时,它不能被识别为“activemq :: listener_A”

<endpoint id="listener_A" uri="mina:tcp://localhost:42000?sync=false&amp;textline=true"/>   

这是错误的:

  <from uri="activemq:listener_A"/>  

这有效:

  <from ref="listener_A"/>  

这样做:

  <from ref="mina:tcp://localhost:42000?sync=false&amp;textline=true"/>