【发布时间】:2018-09-22 00:21:00
【问题描述】:
我有一个 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: Name JMS is not bound in this context。 不过,我没有收到连接工厂的任何错误。
<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"
/>
是否缺少任何配置或者这是一个类加载问题?
【问题讨论】: