AMQP を介して ActiveMQ と統合する Apache Camel アプリケーションを作成しようとしています。
私は提供された「camel-example-spring-jms」プロジェクトから作業してきましたが、これは標準の TCP 接続を介していますが、TCP を使用して正常に動作している (組み込みではなく) スタンドアロンの ActiveMQ 5.8 インストールを使用するように変更しました。 .
アクティブな MQ 構成 ( 5672 の amqp )
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61610?maximumConnections=1000&wireformat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireformat.maxFrameSize=104857600"/>
</transportConnectors>
「 camel-server.xml 」内で、既存の「jms」「ActiveMQComponent」を、接続 URL を指定する「AMQConnectionFactory」を参照する「JmsComponent」に置き換えました (以下の両方のバリエーションを試しました)。
amqp://guest:guest@localhost/test?brokerlist='tcp://localhost:5672'
amqp://guest:guest@/?brokerlist='tcp://localhost:5672'
<bean id="jmsConnectionFactory" class="org.apache.qpid.client.AMQConnectionFactory">
<constructor-arg index="0"
value="amqp://guest:guest@localhost/test?brokerlist='tcp://localhost:5672'" />
</bean>
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="useMessageIDAsCorrelationID" value="true" />
</bean>
サーバーは上記の構成で正常に起動するように見えますが、「ServerRoutes.java」の amqp キューにルートを追加すると、起動時にエラーが発生します。
from("amqp:queue:numbers").to("multiplier");
Camel Server ウィンドウのエラーは次のとおりです。
[nsumer[numbers]] INFO AMQConnection - to broker at tcp://localhost:5672
org.apache.qpid.AMQException: Cannot connect to broker: connect() aborted [error code 200: reply success]
私のActiveMQウィンドウのエラーは次のとおりです。
org.apache.activemq.transport.amqp.AmqpProtocolException: Could not decode AMQP frame: hex: 414d51500101000a
Caused by: org.apache.qpid.proton.engine.TransportException: AMQP header mismatch value 1, expecting 0
この問題を診断するには、どんな助けも歓迎します。
ありがとう。