为什么我会得到"无效的版本"使用Spring和ActiveMQ

时间:2016-08-19 13:44:10

标签: spring tomcat activemq spring-jms

我一直在使用activeMQ。由于我在我的tomcat服务器中的webapps之间进行通信,我在tomcat conf中定义了一些队列,并且在tomcat / lib中有所有的lib,但我的应用程序使用spring,更具体地说是spring-jms和activemq-spring库。

如果我将activemq-all-5.11.1.jar放入lib中,一切正常,但如果我只放入个别罐子(经纪人,客户端,控制台,kahadb,protobuf和spring), 我收到以下错误:

  

javax.jms.JMSException:无法创建传输。原因:java.io.IOException:无效版本:6,无法加载org.apache.activemq.openwire.v6.MarshallerFactory   at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:36)〜[activemq-client-5.11.1.jar:5.11.1]   at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:319)〜[activemq-client-5.11.1.jar:5.11.1]   at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:332)〜[activemq-client-5.11.1.jar:5.11.1]   at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:305)〜[activemq-client-5.11.1.jar:5.11.1]   在org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245)〜[activemq-client-5.11.1.jar:5.11.1]   在org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:365)〜[spring-jms-4.1.6.RELEASE.jar:4.1.6.RELEASE]

我检查了" v6.MarshallerFactory"上课和它似乎与老版本的经纪人交谈有关。但是我的经纪人在tomcat里面运行,而我唯一活跃的mq-jars是tomcat lib中的那些,所以我不明白为什么有人认为有必要与旧版本的代理。

指针非常感谢。

1 个答案:

答案 0 :(得分:0)

您需要包含旧版OpenWire模块,以支持与较旧的代理商版本进行通信,如果您在项目中包含this dependency则应该有效。