【问题标题】:Spring 3 JMS on TomcatTomcat 上的 Spring 3 JMS
【发布时间】:2012-06-04 21:24:52
【问题描述】:

是否可以在 tomcat 中实现 JMS 消息传递?我有一个 spring mvc 应用程序,我需要实现 JMS 消息传递。

我不能使用 glassfish。我知道使用消息驱动 bean 进行 JMS 消息传递非常容易,但在应用程序服务器上。

那么如果有可能,有人可以提供一些示例如何为 Spring 应用程序创建 JMS 连接工厂和队列吗?

我有一个 JMS 队列发送者类:

public class JmsQueueSender {

    private JmsTemplate jmsTemplate;
    private Queue queue;

    public void setConnectionFactory(ConnectionFactory cf) { //?????????????????????
        this.jmsTemplate = new JmsTemplate(cf);
    }

    public void setQueue(Queue queue) { //?????????????????????
        this.queue = queue;
    }

    public void sendMessage(final Serializable object) {
        jmsTemplate.send(this.queue, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                return session.createObjectMessage(object);
            }
        });
    }

}

主要问题是如何创建连接工厂和队列,使用什么对象。在 glassfish 中,我一直在通过应用程序服务器管理控制台创建 JMS 资源。如何在运行在 tomcat 中的 spring 应用程序中执行此操作?

【问题讨论】:

    标签: java spring spring-mvc jms


    【解决方案1】:

    是的,这是可能的。你看过Spring手册的the JMS chapter吗?

    【讨论】:

    • 是的,我有,但是关于如何创建连接工厂和队列有任何说法。
    • 如文档中所述,Spring 为您提供了两个ConnectionFactory 实现,SingleConnectionFactoryCachingConnectionFactory。根据您使用的消息代理类型,他们可能会提供带有 ConnectionFactory 的客户端库,您也可以使用(ActiveMQ 会这样做)。
    • 我现在正在尝试 ActiveMQ。它似乎有效,但我现在正试图理解它。无论如何,谢谢你的回答。
    【解决方案2】:

    您还可以查看Apache TomEE Plus,它是 Tomcat + JMS 等等。您可以通过战争发行版将其放入 Tomcat 中,也可以获取预捆绑的版本。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 2022-12-13
      相关资源
      最近更新 更多