ActiveMQ的queue和topic两种模式的示例演示.docx
- 文档编号:11220743
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:19
- 大小:22.32KB
ActiveMQ的queue和topic两种模式的示例演示.docx
《ActiveMQ的queue和topic两种模式的示例演示.docx》由会员分享,可在线阅读,更多相关《ActiveMQ的queue和topic两种模式的示例演示.docx(19页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ActiveMQ queue topic 模式 示例 演示