2

我正在尝试从 ActiveMQ 开始一个简单的演示,它将演示 TCP 到 TCP 的路由。我在我的 activemq.xml 配置文件中的骆驼上下文中对端点和路由进行编码。

<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,并能够通过消息队列服务器将消息从一个路由到另一个。稍后,我可能会尝试根据内容进行过滤或路由。

4

2 回答 2

1

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

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

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

顺便说一句,如果您只想引用已定义的端点,请使用ref="name"属性而不是uri="..."

例如

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

话虽如此 - 您往往会通过Camel 用户论坛获得更好、更快的 Camel 支持

于 2008-11-05T15:45:36.227 回答
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"/>
于 2008-11-06T23:01:01.293 回答