Apache Camel AMQP-ActiveMQ AMQP标头不匹配值1,应为0
我正在尝试创建一个ApacheCamel应用程序,该应用程序通过AMQP与ActiveMQ集成 我一直在使用提供的“camel-example-spring-jms”项目,该项目是通过标准的TCP连接进行的,但是我已经修改为使用我的独立ActiveMQ 5.8安装(而不是嵌入式),我使用TCP可以很好地工作 活动MQ配置(5672上的amqp) “骆驼服务器”窗口中的错误为:Apache Camel AMQP-ActiveMQ AMQP标头不匹配值1,应为0,apache,activemq,apache-camel,amqp,qpid,Apache,Activemq,Apache Camel,Amqp,Qpid,我正在尝试创建一个ApacheCamel应用程序,该应用程序通过AMQP与ActiveMQ集成 我一直在使用提供的“camel-example-spring-jms”项目,该项目是通过标准的TCP连接进行的,但是我已经修改为使用我的独立ActiveMQ 5.8安装(而不是嵌入式),我使用TCP可以很好地工作 活动MQ配置(5672上的amqp) “骆驼服务器”窗口中的错误为: [nsumer[numbers]] INFO AMQConnection - to broker at tcp://l
[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
在诊断此问题时,将提供任何帮助
谢谢。没错,所以在大量阅读之后,我认为ActiveMQ是AMQP 1.0的实现,我似乎正在使用使用AMQP 0.10的库。我能够通过添加以下mvn依赖项来实现这一点:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.24</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client</artifactId>
<version>0.24</version>
</dependency>
org.apache.camel
骆驼amqp
${camel.version}
org.apache.geronimo.specs
geronimo-jms_1.1_规范
1
org.apache.qpid
qpid-amqp-1-0-client-jms
0.24
org.apache.qpid
qpid-amqp-1-0-client
0.24
并使用此连接工厂:
<bean id="jmsConnectionFactory" class="org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl" factory-method="createFromURL">
<constructor-arg index="0" type="java.lang.String" value="amqp:///?brokerlist='tcp://localhost:5672''" />
嘿,约翰,你是如何纠正这个问题的?您在POM中更新的Maven依赖项是什么。我正在使用qpid客户端版本0.24,工件id为qpid-amqp-1-0-client-jms和qpid客户端,并且面临相同的问题。嘿,不幸的是,我目前没有访问代码库的权限。但是,您似乎正在为AMQP 1.0使用正确的库,请确保您的工厂等使用的版本来自该库,而不是旧的AMQP库实体。
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
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-amqp</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.24</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client</artifactId>
<version>0.24</version>
</dependency>
<bean id="jmsConnectionFactory" class="org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl" factory-method="createFromURL">
<constructor-arg index="0" type="java.lang.String" value="amqp:///?brokerlist='tcp://localhost:5672''" />