JMS简要介绍

 

j2eeadmin -addJmsFactory jndi_name queue
j2eeadmin -addJmsFactory jndi_name topic

Context ctx = new InitialContext();
QueueConnectionFactory queueConnectionFactory =
  (QueueConnectionFactory) ctx.lookup("QueueConnectionFactory");

TopicConnectionFactory topicConnectionFactory =
  (TopicConnectionFactory) ctx.lookup("TopicConnectionFactory");
-----------------------------------------------
j2eeadmin -addJmsDestination queue_name queue
j2eeadmin -addJmsDestination topic_name topic

Topic myTopic = (Topic) ctx.lookup("MyTopic");
Queue myQueue = (Queue) ctx.lookup("MyQueue");
-------------------------------------------------
QueueConnection queueConnection =
  queueConnectionFactory.createQueueConnection();
 
TopicConnection topicConnection =
  topicConnectionFactory.createTopicConnection();

queueConnection.start();
topicConnection.start();

queueConnection.close();
topicConnection.close();
------------------------------------------------
TopicSession topicSession =
  topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
 
QueueSession queueSession =
  queueConnection.createQueueSession(true, 0);

--------------------------------------------------
QueueSender queueSender = queueSession.createSender(myQueue);
TopicPublisher topicPublisher = topicSession.createPublisher(myTopic);

------------------------------------------------------------
queueSender.send(message);
topicPublisher.publish(message);

--------------------------------------------------------------
QueueReceiver queueReceiver = queueSession.createReceiver(myQueue);
TopicSubscriber topicSubscriber = topicSession.createSubscriber(myTopic);

---------------------------synchronously(阻塞方式)-----------------------------------------
queueConnection.start();
Message m = queueReceiver.receive();

topicConnection.start();
Message m = topicSubscriber.receive(1000); // time out after a second

---------------------------asynchronously(非阻塞方式)-----------------------------------------
TopicListener topicListener = new TopicListener();(自定义的类,实现 MessageListener 接口)
topicSubscriber.setMessageListener(topicListener);

queueConnection.start();/topicConnection.start();

---------------------------------Send-------------------------------------------------
TextMessage message = queueSession.createTextMessage();
message.setText(msg_text);     // msg_text is a String
queueSender.send(message);

---------------------------------Receive----------------------------------
Message m = queueReceiver.receive();
if (m instanceof TextMessage) {
    TextMessage message = (TextMessage) m;
    System.out.println("Reading message: " + message.getText());
} else {
    // Handle error
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值