ActiveMQ到HornetQ导致异常

ActiveMQ到HornetQ导致异常,activemq,hornetq,Activemq,Hornetq,我正在尝试使用ActiveMQ向使用HornetQ的服务器发送JMS消息,但遇到了一些困难。我认为这样做是完全合理的,所以我怀疑在我这方面存在某种(可能是微不足道的)操作符错误。这里有什么东西可以被发现或者我应该看一下吗?尝试创建会话时出错: 在我这方面,我正在做以下工作: final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_US

我正在尝试使用ActiveMQ向使用HornetQ的服务器发送JMS消息,但遇到了一些困难。我认为这样做是完全合理的,所以我怀疑在我这方面存在某种(可能是微不足道的)操作符错误。这里有什么东西可以被发现或者我应该看一下吗?尝试创建会话时出错:

在我这方面,我正在做以下工作:

 final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, serverUrl);
 connection = connectionFactory.createQueueConnection();
 session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
11:53:06,428 ERROR [org.hornetq.core.protocol.core.impl.RemotingConnectionImpl] (Old I/O server worker (parentId: 1778858866, [id: 0x6a073b72, -hostname-])) 
Failed to decode: java.lang.IllegalArgumentException: Invalid type: 1
at org.hornetq.core.protocol.core.impl.PacketDecoder.decode(PacketDecoder.java:550) [hornetq-core-2.2.13.Final.jar:]
....
在服务器端,他们看到以下内容:

 final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, serverUrl);
 connection = connectionFactory.createQueueConnection();
 session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
11:53:06,428 ERROR [org.hornetq.core.protocol.core.impl.RemotingConnectionImpl] (Old I/O server worker (parentId: 1778858866, [id: 0x6a073b72, -hostname-])) 
Failed to decode: java.lang.IllegalArgumentException: Invalid type: 1
at org.hornetq.core.protocol.core.impl.PacketDecoder.decode(PacketDecoder.java:550) [hornetq-core-2.2.13.Final.jar:]
....

您不能使用ActiveMQ库与HornetQ对话。每一个都有自己的协议,您需要适当的库进行对话,这是双向的。您不能使用HornetQ库与ActiveMQ对话


您可以使用stomp与HornetQ对话,这是HornetQ和ActiveMQ之间的一个公共库。

很有趣。这就是我最初的想法,但双方的团体都认为这听起来很奇怪,因为这应该是一个有线协议标准。我将研究如何在我们这边使用stomp和/或添加HornetQ。同样,您不能使用ActiveMQ与WebSphere MQ对话。。等您可能应该接受我的回答:)另一个选择是使用ApacheCamel创建一个路由,将消息从一个代理转发到另一个代理。谢谢大家。在经历了一些其他的打嗝之后,我至少能够使用hornetq JAR与他们的服务器进行通信。我们试图最小化依赖关系,以便可以研究其他选项之一,但至少现在我们知道了问题所在。JMS!=协议JMS=客户端API不兼容。。。提供有线兼容性(即协议)的唯一规范是:AMQP、MQT、Stomp。。可能还有其他人,但我现在记不起来了。如果您使用API实现,它将仅对该特定实现有效。我希望这有帮助!