tomcat 为什么Spring和ActiveMQ会出现“Invalid version”?

1l5u6lss  于 2023-10-19  发布在  Spring
关注(0)|答案(1)|浏览(108)

我已经使用ActiveMQ很久了。由于我在Tomcat服务器中的Web应用程序之间进行通信,我在Tomcat的conf中定义了一些队列,并在tomcat/lib中拥有所有的库,但我的应用程序使用Spring,更具体地说,是spring-jms和activeMQ-spring库。
如果我把activemq-all-5.11.1.jar放在lib中,那么一切都可以工作,但是如果我只是放在单独的jar(broker,client,console,kahadb,protobuf和spring)中,我会得到以下错误:

javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Invalid version: 6, could not load 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]
  at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:245) ~[activemq-client-5.11.1.jar:5.11.1]
  at org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:365) ~[spring-jms-4.1.6.RELEASE.jar:4.1.6.RELEASE]

我检查了“v6.MarshallerFactory”类,它似乎与与旧版本的代理有关。但是我的代理是在Tomcat中运行的,我唯一拥有的ActiveMQ jar是那些在Tomcat库中的,所以我不明白为什么有人认为需要与旧版本的代理对话。

aiazj4mn

aiazj4mn1#

您需要包含遗留的OpenWire模块,以便支持与旧的代理版本对话,如果您在项目中包含this dependency,它应该可以工作。

相关问题