package com.shine.test;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ActiveMQ {
public static void main(String[] args) throws JMSException {
/* 工廠連接一個JMS */
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
/* 創建一個消息發佈 */
Topic topic = session.createTopic("message");
/* 發佈者 */
MessageProducer product = session.createProducer(topic);
/* 設置持久性 */
product.setDeliveryMode(DeliveryMode.PERSISTENT);
/* 訂閱者 */
MessageConsumer consumer = session.createConsumer(topic, null, false);
/* 設置監聽事件 */
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
try {
System.out.println(((TextMessage) message).getText());
}
catch (JMSException e) {
e.printStackTrace();
}
}
});
/* 創建一條消息 */
Message msg = session.createTextMessage("發佈/訂閱");
product.send(msg);
}
}
JMS訂閱/發佈消息傳送模型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.