如何在这个简单的场景中开始实现JMS

  • 本文关键字:开始 实现 JMS 简单 java jms
  • 更新时间 :
  • 英文 :


我需要实现这个场景有两个基于java的web应用程序托管在两个不同的tomcat实例上,比如T1和T2。当T2上有内容更改时我想把修改后的内容名称和日期放在T1正在监听的队列中。一旦T2将其放入队列,T1就应该记录这些数据库表中的字段,包括三列,即prim key、ContentName和Modified date。?我不知道如何开始实施JMS在这里,因为我是JMS的门外汉?我只知道JMS使用队列,其中一个应用程序可能是发布者,另一个则是使用者。任何帮助如何开始这将是巨大的恩惠?两个应用程序我都使用tomcat。在网络上的不同网站上,有两种材料会让人感到困惑(事实上,我实现这一点的时间很短:()

如果时间短,则跳过JMS,实际上如果时间长,则跳过JMS[/strong>,这不适合您的简单用例。一个简单的Servlet接收并处理消息就足够了。

JMS是一个过于复杂、过于泛化的层,它本应该简单得多。如果您只是必须使用某种排队系统,他们会考虑更轻松、更简单的方法,比如使用RabbitMQ的直接客户端库或某种类型的Stomp客户端。

如果您真的觉得有必要,您可以随时返回并添加JMS客户端包装器的开销和复杂性,这里有一个提示您不会这样做。

冷静下来,开始阅读。在学习可运行代码之前,有一些简短的教程不会花太多篇幅来解释这个理论。这还不错:http://java.sun.com/developer/technicalArticles/Ecommerce/jms/

基本上,您可以从某处获得连接工厂。(可以通过JNDI查找,也可以直接创建。)您要求工厂创建连接,连接创建会话,其余部分来自会话。

要发送消息,您可以使用以下内容:

   ConnectionFactory factory = getJMSConnectionFactory();
   Connection connection = factory.createConnection();
   Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Queue queue = session.createQueue("MyQueue");
   MessageProducer producer = session.createProducer(queue);
   connection.start();
   Message message = session.createTextMessage("hello world!");
   producer.sendMessage(message);

要接收消息,您可以使用以下内容:

   ConnectionFactory factory = getJMSConnectionFactory();
   Connection connection = factory.createConnection();
   Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Queue queue = session.createQueue("MyQueue");
   MessageConsumer consumer = session.createConsumer(queue);
   connection.start();
   Message message = consumer.receive();

最新更新