我有一个spring jms应用程序,目前使用ibm mq服务器进行队列管理。我们计划将中间件更改为rabbitmq以获得更好的性能并有效地控制它,但是希望保持spring jms代码不变。 我按照以下链接中提到的所有步骤进行操作。 https://www.rabbitmq.com/jms-client.html
目前在我的tomcat context.xml中,队列配置如下所示
<Resource
name="jms/MYQUEUE"
auth="Container"
type="com.ibm.mq.jms.MQQueue"
factory="com.ibm.mq.jms.MQQueueFactory"
description="JMS Queue for receiving messages from Dialog"
QU="MYQUEUE"/>
对于rabbitmq jms,我将其更改为
<Resource
name="jms/MYQUEUE"
auth="Container"
type="javax.jms.Queue"
factory="com.rabbitmq.jms.admin.RMQObjectFactory"
description="JMS Queue for receiving messages from Dialog"
destinationName="MYQUEUE"
amqp="true" />
我在项目库中添加了所有必需的jar。 但每次我启动tomcat时,我都会得到javax.naming.NameNotFoundException:名称JMS未绑定在此上下文中。 我没有为连接工厂收到任何错误。
<Resource
name="jms/queueCF"
auth="Container"
type="javax.jms.ConnectionFactory"
factory="com.rabbitmq.jms.admin.RMQObjectFactory"
description="JMS Queue Connection Factory for sending messages"
HOST="localhost"
PORT="5672"
username="guest"
password="guest"
/>
是否缺少任何配置或者这是一个类加载问题?