JMS實戰之四 ------JMS學習環境的搭建

JMS學習環境的搭建

1、  打開eclipse,新建項目”learnJMS”

2、  添加JMS相關包,由於我們使用的消息中間件爲ActiveMQ,所以需要從ACTIVEMQ_HOME\lib目錄下的相關包:

3、創建三個類,Publisher.java,Subscriber.java,Listener.java代碼如下:

 

package ex01;

import javax.jms.JMSException;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
import javax.naming.InitialContext;

public class Publisher {

 private TopicConnection connection;
 private TopicPublisher publisher;
 private TopicSession session;
 
 public Publisher() throws Exception
 {
  InitialContext init=new InitialContext();
  TopicConnectionFactory topicConnectionFactory=(TopicConnectionFactory)init.lookup("TopicCF");
  connection=topicConnectionFactory.createTopicConnection();
  session=connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
  Topic topic=(Topic)init.lookup("topic1");
  publisher=session.createPublisher(topic);
  
  connection.start();
 }
 
 public void writeMessage(String message) throws JMSException
 {
  TextMessage textMessage=session.createTextMessage();
  textMessage.setText(message);
  publisher.publish(textMessage);
 }
 
 public void close() throws JMSException
 {
  connection.close();
 }
 
 public static void main(String[] args)
 {
  try {
   Publisher publisher = new Publisher();
   publisher.writeMessage("nihao!");
//   publisher.close();
  } catch (Exception e) {
   e.printStackTrace();
  }  
  
 }
}

 

 

 

package ex01;

import javax.jms.JMSException;
import javax.jms.Session;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.InitialContext;

public class Subscriber {

 private TopicConnection connection;
 private TopicSession session;
 private TopicSubscriber subscriber;
 
 public Subscriber() throws Exception
 {
  InitialContext init=new InitialContext();
  TopicConnectionFactory connectionFactory=(TopicConnectionFactory)init.lookup("TopicCF");
  connection=connectionFactory.createTopicConnection();
  session=connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
  Topic topic=(Topic)init.lookup("topic1");
  subscriber=session.createSubscriber(topic);
  
  subscriber.setMessageListener(new Listener());
  connection.start();
 }
 
 public void close() throws JMSException
 {
  connection.close();
 }
 
 public static void main(String[] args) {
  
  try {
   Subscriber sub=new Subscriber();
//   sub.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

 

 

 

package ex01;

import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

public class Listener implements MessageListener {

 public void onMessage(Message message) {
  
  try {
   TextMessage textMessage = (TextMessage) message;
   System.out.println("message is :"+textMessage.getText());
  } catch (Exception e) {
   e.printStackTrace();
  }  
 }

}

 

4、啓動ActiveMQ,然後運行Subscriber.java。Publisher.java類

可以看到Subscriber收到了Publisher發送的信息:nihao。

 

JMS學習環境搭建成功。下一節我們學習JMSAPI。

發佈了8 篇原創文章 · 獲贊 13 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章