Простая маршрутизация конечных точек TCP в activemq что не так?

StackOverflow https://stackoverflow.com/questions/265361

  •  06-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь запустить простую демонстрацию с помощью ActiveMQ, которая продемонстрирует маршрут TCP-TCP.Я кодирую конечные точки и маршруты в контексте camel в моем файле конфигурации 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 конечные точки для использования MINA (которые вообще не будут использовать ActiveMQ);затем вы используете маршрут из очереди ACTIVEVMQ listener_A в listener_B, затем listener_B в listener_A (что является рекурсивным циклом).

Может быть, если вы начнете описывать, что вы хотите сделать, мы сможем понять, как должен выглядеть XML.

Кстати, если вы просто хотите сослаться на определенные вами конечные точки, используйте ref="имя" атрибут , а не uri="...".

например ,

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

Учитывая все вышесказанное, вы, как правило, получаете лучшую и более быструю поддержку на Camel через Форум пользователей Camel

Другие советы

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

Когда конечная точка определена как минимальное 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"/>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top