Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Camel AMQP-ActiveMQ AMQP标头不匹配值1,应为0_Apache_Activemq_Apache Camel_Amqp_Qpid - Fatal编程技术网

Apache Camel AMQP-ActiveMQ AMQP标头不匹配值1,应为0

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

我正在尝试创建一个ApacheCamel应用程序,该应用程序通过AMQP与ActiveMQ集成

我一直在使用提供的“camel-example-spring-jms”项目,该项目是通过标准的TCP连接进行的,但是我已经修改为使用我的独立ActiveMQ 5.8安装(而不是嵌入式),我使用TCP可以很好地工作

活动MQ配置(5672上的amqp

“骆驼服务器”窗口中的错误为:

[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''" />