日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

深入掌握JMS(二):一個JMS例子

 moonboat 2009-07-12

深入掌握JMS(二):一個JMS例子

        前一講簡單的介紹了一下JMS的基本概念, 這一講結合一個例子讓大家深入理解前一講的基本概念. 首先需要做的是選擇一個JMS提供者, 如果在JavaEE環(huán)境中可以不用考慮這些. 我們選擇ActiveMQ, 官方地址: http://activemq./. 網(wǎng)上有很多介紹ActiveMQ的文檔, 所以在這里就不介紹了.

按照上一講的這個簡圖,

  ConnectionFactory---->Connection--->Session--->Message
  Destination + Session------------------------------------>Producer
  Destination + Session------------------------------------>MessageConsumer

首先需要得到ConnectionFactoy和Destination,這里創(chuàng)建一個一對一的Queue作為Destination。
  ConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
  Queue queue = new ActiveMQQueue("testQueue");

然后又ConnectionFactory創(chuàng)建一個Connection, 再啟動這個Connection:
  Connection connection = factory.createConnection();
  connection.start();

接下來需要由Connection創(chuàng)建一個Session:
  Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
    現(xiàn)在暫且不用管參數(shù)的含義, 以后會詳細講到.

下面就可以創(chuàng)建Message了,這里創(chuàng)建一個TextMessage。
  Message message = session.createTextMessage("Hello JMS!");

要想把剛才創(chuàng)建的消息發(fā)送出去,需要由Session和Destination創(chuàng)建一個消息生產(chǎn)者:
  MessageProducer producer = session.createProducer(queue);

下面就可以發(fā)送剛才創(chuàng)建的消息了:
  producer.send(message);

消息發(fā)送完成之后,我們需要創(chuàng)建一個消息消費者來接收這個消息:
  MessageConsumer comsumer = session.createConsumer(queue);
  Message recvMessage = comsumer.receive();

消息消費者接收到這個消息之后,就可以得到它的內(nèi)容:
  System.out.println(((TextMessage)recvMessage).getText());

至此,一個簡單的JMS例子就完成了。下面是全部源碼

import javax.jms.Connection;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;

public class MessageSendAndReceive {

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
   
        Connection connection = factory.createConnection();
        connection.start();
       
        Queue queue = new ActiveMQQueue("testQueue");
       
        final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Message message = session.createTextMessage("Hello JMS!");
       
        MessageProducer producer = session.createProducer(queue);
        producer.send(message);
   
        System.out.println("Send Message Completed!");
       
        MessageConsumer comsumer = session.createConsumer(queue);
        Message recvMessage = comsumer.receive();
        System.out.println(((TextMessage)recvMessage).getText());
    }

}

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多