ActiveMQ的queue和topic两种模式的示例演示.docx

上传人:b****7 文档编号:11220743 上传时间:2023-02-25 格式:DOCX 页数:19 大小:22.32KB
下载 相关 举报
ActiveMQ的queue和topic两种模式的示例演示.docx_第1页
第1页 / 共19页
ActiveMQ的queue和topic两种模式的示例演示.docx_第2页
第2页 / 共19页
ActiveMQ的queue和topic两种模式的示例演示.docx_第3页
第3页 / 共19页
ActiveMQ的queue和topic两种模式的示例演示.docx_第4页
第4页 / 共19页
ActiveMQ的queue和topic两种模式的示例演示.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

ActiveMQ的queue和topic两种模式的示例演示.docx

《ActiveMQ的queue和topic两种模式的示例演示.docx》由会员分享,可在线阅读,更多相关《ActiveMQ的queue和topic两种模式的示例演示.docx(19页珍藏版)》请在冰豆网上搜索。

ActiveMQ的queue和topic两种模式的示例演示.docx

ActiveMQ的queue和topic两种模式的示例演示

ActiveMQ的queue和topic两种模式的示例演示

分类:

Java相关2010-05-0614:

33228人阅读评论

(1)收藏举报

以前从网上收集到的代码,很实用,可惜忘了地址了。

在这里感谢一下原作者的辛勤劳动,改日发现链接的话一定补上。

郑重声明:

代码源自网络!

 

queue模式:

ConsumerTest.java

viewplaincopytoclipboardprint?

1.package queue;  

2.  

3.import javax.jms.JMSException;  

4.  

5.public class ConsumerTest implements Runnable {  

6.    static Thread t1 = null;  

7.  

8.    /** 

9.     * @param args 

10.     * @throws InterruptedException 

11.     * @throws InterruptedException 

12.     * @throws JMSException 

13.     * @throws InterruptedException 

14.     */  

15.    public static void main(String[] args) throws InterruptedException {  

16.  

17.        t1 = new Thread(new ConsumerTest());  

18.        t1.start();  

19.        while (true) {  

20.            System.out.println(t1.isAlive());  

21.            if (!

t1.isAlive()) {  

22.                t1 = new Thread(new ConsumerTest());  

23.                t1.start();  

24.                System.out.println("重新启动");  

25.            }  

26.            Thread.sleep(5000);  

27.        }  

28.        // 延时500毫秒之后停止接受消息  

29.        // Thread.sleep(500);  

30.        // consumer.close();  

31.    }  

32.  

33.    public void run() {  

34.        try {  

35.            ConsumerTool consumer = new ConsumerTool();  

36.            consumer.consumeMessage();  

37.            while (ConsumerTool.isconnection) {  

38.            }  

39.        } catch (Exception e) {  

40.        }  

41.    }  

42.}  

ConsumerTool.java

viewplaincopytoclipboardprint?

1.package queue;  

2.  

3.import javax.jms.Connection;  

4.import javax.jms.Destination;  

5.import javax.jms.ExceptionListener;  

6.import javax.jms.JMSException;  

7.import javax.jms.MessageConsumer;  

8.import javax.jms.Session;  

9.import javax.jms.MessageListener;  

10.import javax.jms.Message;  

11.import javax.jms.TextMessage;  

12.  

13.import org.apache.activemq.ActiveMQConnection;  

14.import org.apache.activemq.ActiveMQConnectionFactory;  

15.  

16.public class ConsumerTool implements MessageListener, ExceptionListener {  

17.    private String user = ActiveMQConnection.DEFAULT_USER;  

18.    private String password = ActiveMQConnection.DEFAULT_PASSWORD;  

19.    private String url = ActiveMQConnection.DEFAULT_BROKER_URL;  

20.    private String subject = "myqueue";  

21.    private Destination destination = null;  

22.    private Connection connection = null;  

23.    private Session session = null;  

24.    private MessageConsumer consumer = null;  

25.    private ActiveMQConnectionFactory connectionFactory = null;  

26.    public static Boolean isconnection = false;  

27.  

28.    // 初始化  

29.    private void initialize() throws JMSException {  

30.        connectionFactory = new ActiveMQConnectionFactory(user, password, url);  

31.        connection = connectionFactory.createConnection();  

32.        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);  

33.        destination = session.createQueue(subject);  

34.        consumer = session.createConsumer(destination);  

35.    }  

36.  

37.    // 消费消息  

38.    public void consumeMessage() throws JMSException {  

39.        initialize();  

40.        connection.start();  

41.  

42.        consumer.setMessageListener(this);  

43.        connection.setExceptionListener(this);  

44.        System.out.println("Consumer:

->Begin listening...");  

45.        isconnection = true;  

46.        // 开始监听  

47.        // Message message = consumer.receive();  

48.    }  

49.  

50.    // 关闭连接  

51.    public void close() throws JMSException {  

52.        System.out.println("Consumer:

->Closing connection");  

53.        if (consumer !

= null)  

54.            consumer.close();  

55.        if (session !

= null)  

56.            session.close();  

57.        if (connection !

= null)  

58.            connection.close();  

59.    }  

60.  

61.    // 消息处理函数  

62.    public void onMessage(Message message) {  

63.        try {  

64.            if (message instanceof TextMessage) {  

65.                TextMessage txtMsg = (TextMessage) message;  

66.                String msg = txtMsg.getText();  

67.                System.out.println("Consumer:

->Received:

 " + msg);  

68.            } else {  

69.                System.out.println("Consumer:

->Received:

 " + message);  

70.            }  

71.        } catch (JMSException e) {  

72.            e.printStackTrace();  

73.        }  

74.    }  

75.  

76.    public void onException(JMSException arg0) {  

77.        isconnection = false;  

78.    }  

79.}  

ProducerTest.java

viewplaincopytoclipboardprint?

1.package queue;  

2.import javax.jms.JMSException;        

3.  

4.public class ProducerTest {        

5.       

6.    /**     

7.     * @param args     

8.     * @throws Exception  

9.     * @throws JMSException  

10.     */       

11.    public static void main(String[] args) throws JMSException, Exception{        

12.        ProducerTool producer = new ProducerTool();       

13.        producer.produceMessage("Hello, world!

");        

14.        producer.close();  

15.    }        

16.}  

ProducerTool.java

viewplaincopytoclipboardprint?

1.package queue;  

2.import javax.jms.Connection;        

3.import javax.jms.DeliveryMode;        

4.import javax.jms.Destination;        

5.import javax.jms.JMSException;        

6.import javax.jms.MessageProducer;        

7.import javax.jms.Session;        

8.import javax.jms.TextMessage;        

9.       

10.import org.apache.activemq.ActiveMQConnection;        

11.import org.apache.activemq.ActiveMQConnectionFactory;        

12.       

13.public class ProducerTool {          

14.    private String user = ActiveMQConnection.DEFAULT_USER;           

15.    private String password = ActiveMQConnection.DEFAULT_PASSWORD;         

16.    private String url = ActiveMQConnection.DEFAULT_BROKER_URL;         

17.    private String subject = "myqueue";        

18.    private Destination destination = null;        

19.    private Connection connection = null;        

20.    private Session session = null;        

21.    private MessageProducer producer = null;  

22.    // 初始化        

23.    private void initialize() throws JMSException, Exception {        

24.        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(        

25.                user, password, url);        

26.        connection = connectionFactory.createConnection();        

27.        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);        

28.        destination = session.createQueue(subject);        

29.        producer = session.createProducer(destination);        

30.        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);        

31.    }  

32.    // 发送消息        

33.    public void produceMessage(String message) throws JMSException, Exception {        

34.        initialize();        

35.        TextMessage msg = session.createTextMessage(message);        

36.        connection.start();        

37.        System.out.println("Producer:

->Sending message:

 " + message);        

38.        producer.send(msg);        

39.        System.out.println("Producer:

->Message sent complete!

");        

40.    }  

41.    // 关闭连接        

42.    public void close() throws JMSException {        

43.        System.out.println("Producer:

->Closing connection");        

44.        if (producer !

= null)        

45.            producer.close();        

46.        if (session !

= null)        

47.            session.close();        

48.        if (connection !

= null)        

49.            connection.close();        

50.    }        

51.}  

 

topic模式:

ConsumerTest.java

viewplaincopytoclipboardprint?

1.package topic;  

2.  

3.import javax.jms.JMSException;  

4.  

5.public class ConsumerTest implements Runnable {  

6.    static Thread t1 = null;  

7.  

8.    /** 

9.     * @param args 

10.     * @throws InterruptedException 

11.     * @throws InterruptedException 

12.     * @throws JMSException 

13.     * @throws InterruptedException 

14.     */  

15.    public static void main(String[] args) throws InterruptedException {  

16.  

17.        t1 = new Thread(new ConsumerTest());  

18.        t1.start();  

19.        while (true) {  

20.            System.out.println(t1.isAlive());  

21.            if (!

t1.isAlive()) {  

22.                t1 = new Thread(new ConsumerTest());  

23.                t1.start();  

24.                System.out.println("重新启动");  

25.            }  

26.            Thread.sleep(5000);  

27.        }  

28.        // 延时500毫秒之后停止接受消息  

29.        // Thread.sleep(500);  

30.        // consumer.close();  

31.    }  

32.  

33.    public void run() {  

34.        try {  

35.            ConsumerTool consumer = new ConsumerTool();  

36.            consumer.consumeMessage();  

37.            while (ConsumerTool.isconnection) {   

38.            }  

39.        } catch (Exception e) {  

40.        }  

41.    }  

42.}  

ConsumerTool.java

viewplaincopytoclipboardprint?

1.package topic;  

2.  

3.import javax.jms.Connection;  

4.import javax.jms.Destination;  

5.import javax.jms.ExceptionListener;  

6.import javax.jms.JMSException;  

7.import javax.jms.MessageConsumer;  

8.import javax.jms.Session;  

9.import javax.jms.MessageListener;  

10.import javax.jms.Message;  

11.import javax.jms.TextMessage;  

12.  

13.import org.apache.activemq.ActiveMQConnection;  

14.import org.apache.activemq.ActiveMQConnectionFactory;  

15.  

16.pu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1