Простая маршрутизация конечных точек TCP в activemq, что не так? - PullRequest
1 голос
/ 05 ноября 2008

Я пытаюсь запустить простую демонстрацию с 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, похоже, не открывает порт прослушивания.

Редактировать: здесь, в качестве простой демонстрации, предполагается подключиться к ActiveMQ с помощью двух терминалов telnet (A и B) и иметь возможность направлять сообщения от одного к другому через сервер очереди сообщений. Позже я могу попробовать фильтрацию или маршрутизацию на основе содержимого.

Ответы [ 2 ]

1 голос
/ 05 ноября 2008

Я немного смущен вашим файлом конфигурации. Что именно ты пытаешься сделать?

Вы определили 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 User Forum

0 голосов
/ 07 ноября 2008

Подробнее об этом:

Когда конечная точка определена как минимальное 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"/>
...