rabbitmq jms queue jndi tomcat configuration



我有一个Spring jms应用程序,它目前使用IBM mq服务器进行队列管理。我们计划将中间件更改为 rabbitmq 以获得更好的性能并有效地控制它,但希望保持 Spring jms 代码不变。 我按照以下链接中提到的所有步骤进行操作。 https://www.rabbitmq.com/jms-client.html

目前在我的tomcat上下文中.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" />

我已经在项目库中添加了所有必要的罐子。 但是每次我启动tomcat时,我都会得到javax.naming.NameNotFoundException:Name 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"
/>

是否缺少任何配置,或者这是类加载问题?

Tomcat应该有RabbitMQ库。

您可以阅读此Github存储库,然后将其放入%CATALINA_HOME%lib

最新更新