2013-02-13 1 views
0

Следуя инструкциям на activemq.apache.org, довольно легко встать и запустить с использованием openwire в качестве транспортного протокола.Camel ActiveMQComponent при использовании других протоколов openwire

Позволить URI имеет возможность trace, позволяет видеть рукопожатие и все: @testing.activeMqInstance=failover:tcp://localhost:61616?trace=true

09:36:06.764 [ActiveMQ Task-1] DEBUG o.a.a.t.failover.FailoverTransport - Attempting 0th connect to: tcp://localhost:61616?trace=true 
09:36:06.780 [ActiveMQ Task-1] DEBUG o.a.a.transport.WireFormatNegotiator - Sending: WireFormatInfo { version=9, properties={MaxFrameSize=9223372036854775807, CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]} 
09:36:06.780 [ActiveMQ Task-1] DEBUG o.a.a.t.TransportLogger.Connection:2 - SENDING: WireFormatInfo { version=9, properties={MaxFrameSize=9223372036854775807, CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]} 
09:36:06.780 [ActiveMQ Task-1] DEBUG o.a.a.t.failover.FailoverTransport - Connection established 
09:36:06.780 [ActiveMQ Task-1] INFO o.a.a.t.failover.FailoverTransport - Successfully connected to tcp://localhost:61616?trace=true 
09:36:06.780 [ActiveMQ Transport: tcp://localhost/127.0.0.1:[email protected]] DEBUG o.a.a.t.TransportLogger.Connection:2 - RECEIVED: WireFormatInfo { version=9, properties={CacheSize=1024, MaxFrameSize=9223372036854775807, CacheEnabled=true, SizePrefixDisabled=false, TcpNoDelayEnabled=true, MaxInactivityDurationInitalDelay=10000, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]} 

Однако при выполнении топать (или любую AMQP по этому вопросу).

Изменение URI для @testing.activeMqInstance=failover:stomp://localhost:61612?trace=true только кажется, чтобы установить соединение (разъем), а не начинать протокол:

09:37:07.444 [ActiveMQ Task-1] DEBUG o.a.a.t.failover.FailoverTransport - urlList connectionList:[stomp://localhost:61612?trace=true], from: [stomp://localhost:61612?trace=true] 
09:37:07.444 [ActiveMQ Task-1] DEBUG o.a.a.t.failover.FailoverTransport - Attempting 0th connect to: stomp://localhost:61612?trace=true 
09:37:07.444 [ActiveMQ Task-1] DEBUG o.a.a.t.failover.FailoverTransport - Connection established 
09:37:07.444 [ActiveMQ Task-1] INFO o.a.a.t.failover.FailoverTransport - Successfully connected to stomp://localhost:61612?trace=true 
[silence] 

Кто-нибудь есть какие-либо понять, почему нет никакой активности на транспорте? Получил то же значение trace в брокере, но нет TRACE. Записывается сообщение о том, что клиент (ActiveMQComponent) не отправляет событие первый кадр CONNECT.

Для справки, компонент выполнен с использованием Spring XML:

<bean id="jmsActiveMqConnectionFactory" 
    class="org.apache.activemq.ActiveMQConnectionFactory"> 
    <property name="brokerURL" value="${activeMqInstance}" /> 
    <property name="userName" value="${activeMqUsername}"/> 
    <property name="password" value="${activeMqPassword}"/> 
</bean> 
<bean id="pooledActiveMqConnectionFactory" 
    class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop"> 
    property name="maxConnections" value="8" /> 
    <property name="connectionFactory" ref="jmsActiveMqConnectionFactory" /> 
</bean> 
<bean id="jmsActiveMqConfig" 
    class="org.apache.camel.component.jms.JmsConfiguration"> 
    <property name="connectionFactory" ref="pooledActiveMqConnectionFactory"/> 
    <property name="concurrentConsumers" value="1"/> 
</bean> 
<bean id="activemq" 
    class="org.apache.activemq.camel.component.ActiveMQComponent"> 
    <property name="configuration" ref="jmsActiveMqConfig"/> 

Любой ввод ценится! :-)

ответ

0

Клиент ActiveMQ JMS поддерживает только протокол Openwire.

Если вы хотите использовать STOMP, я бы рекомендовал клиенту stompjms от https://github.com/fusesource/stompjms

Если вы хотите использовать AMQP, использовать JMS клиент AMQP 1.0 из Apache Qpid project

+0

Hi Хирамовым! Я пытался использовать клиент stompjms (1.13) - но он, похоже, не подключается должным образом как долговечный подписчик. Версия 1.12, но были некоторые NPE при получении сообщений от брокера (извлечение «JMSDestinationID» из заголовка или аналогичного) – jhberges

+0

FYI: Клиент успешно просматривает этот код перед отправкой: if (persistent) { headerMap.put (PERSISTENT, TRUE); } – jhberges

+0

Кстати, попробовал вариант amqp, который привел к этому: https://issues.apache.org/jira/browse/PROTON-244: -/ – jhberges

Смежные вопросы