rabbitmq jms队列jndi tomcat配置

时间:2018-04-12 01:12:06

标签: rabbitmq jms

我有一个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"
      />

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

1 个答案:

答案 0 :(得分:0)

Tomcat应该具有RabbitMQ库。

您可以阅读this Github repo,然后将其放入%CATALINA_HOME%\lib\