我正在尝试使用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&textline=true"/>
<endpoint id="listener_B" uri="mina:tcp://localhost:42001?sync=false&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,并能够通过消息队列服务器将消息从一个路由到另一个。稍后,我可能会尝试根据内容进行过滤或路由。
答案 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&textline=true"/>
这是错误的:
<from uri="activemq:listener_A"/>
这有效:
<from ref="listener_A"/>
这样做:
<from ref="mina:tcp://localhost:42000?sync=false&textline=true"/>