1.maven 依赖
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.13.4</version>
</dependency>
2.测试
1 package com.test.activemq; 2 3 import javax.jms.Connection; 4 5 import javax.jms.ConnectionFactory; 6 import javax.jms.JMSException; 7 import javax.jms.Message; 8 import javax.jms.MessageConsumer; 9 import javax.jms.MessageListener; 10 import javax.jms.MessageProducer; 11 import javax.jms.Queue; 12 import javax.jms.Session; 13 import javax.jms.TextMessage; 14 import javax.jms.Topic; 15 16 import org.apache.activemq.ActiveMQConnectionFactory; 17 import org.junit.Test; 18 19 public class test { 20 21 /** 22 * 创建 一对一推送 生产者 23 * 24 * @author changwei 25 * @date 2018-5-30 下午5:53:14 26 * @param args 27 * @throws JMSException 28 */ 29 @Test 30 public void TestQueueProducer() throws Exception { 31 // 1、创建工厂连接对象,需要制定ip和端口号 32 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( 33 "tcp://118.25.26.50:61616"); 34 // 2、使用连接工厂创建一个连接对象 35 Connection connection = connectionFactory.createConnection(); 36 // 3、开启连接 37 connection.start(); 38 // 4、使用连接对象创建会话(session)对象第一个参数:是否支持事务,如果为true,则会忽略第二个参数,自动被jms服务器设置为SESSION_TRANSACTED。 39 Session session = connection.createSession(false, 40 Session.AUTO_ACKNOWLEDGE); 41 // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多) 42 Queue queue = session.createQueue("test-queue2"); 43 // 6、使用会话对象创建生产者对象 44 MessageProducer producer = session.createProducer(queue); 45 // 7、使用会话对象创建一个消息对象 46 TextMessage textMessage = session.createTextMessage("hello11"); 47 // 8、发送消息 48 producer.send(textMessage); 49 // 9、关闭资源 50 producer.close(); 51 session.close(); 52 connection.close(); 53 54 } 55 56 /** 57 * 创建一对一 消费者 58 * 59 * @author changwei 60 * @date 2018-6-4 上午9:25:05 61 * @throws Exception 62 */ 63 @Test 64 public void TestMQConsumerQueue() throws Exception { 65 // 1、创建工厂连接对象,需要制定ip和端口号 66 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( 67 "tcp://118.25.26.50:61616"); 68 // 2、使用连接工厂创建一个连接对象 69 Connection connection = connectionFactory.createConnection(); 70 // 3、开启连接 71 connection.start(); 72 // 4、使用连接对象创建会话(session)对象 73 Session session = connection.createSession(false, 74 Session.AUTO_ACKNOWLEDGE); 75 // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多) 76 Queue queue = session.createQueue("test-queue2"); 77 // 6、使用会话对象创建生产者对象 78 MessageConsumer consumer = session.createConsumer(queue); 79 // 7、向consumer对象中设置一个messageListener对象,用来接收消息 80 consumer.setMessageListener(new MessageListener() { 81 82 public void onMessage(Message message) { 83 if (message instanceof TextMessage) { 84 TextMessage textMessage = (TextMessage) message; 85 try { 86 System.out.println(textMessage.getText()); 87 } catch (JMSException e) { 88 e.printStackTrace(); 89 } 90 } 91 } 92 }); 93 // 8、程序等待接收用户消息 94 System.in.read(); 95 96 // 8、程序等待接收用户消息 97 // 9、关闭资源 98 consumer.close(); 99 session.close(); 100 connection.close(); 101 } 102 103 /** 104 * 创建 一对多 生产者 105 * 106 * @author changwei 107 * @date 2018-6-4 上午9:29:23 108 * @throws Exception 109 */ 110 @Test 111 public void TestTopicProducer() throws Exception { 112 // 1、创建工厂连接对象,需要制定ip和端口号 113 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( 114 "tcp://118.25.26.50:61616"); 115 // 2、使用连接工厂创建一个连接对象 116 Connection connection = connectionFactory.createConnection(); 117 // 3、开启连接 118 connection.start(); 119 // 4、使用连接对象创建会话(session)对象 第一个参数:是否支持事务,如果为true,则会忽略第二个参数,自动被jms服务器设置为SESSION_TRANSACTED。 120 Session session = connection.createSession(false, 121 Session.AUTO_ACKNOWLEDGE); 122 // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多) 123 Topic topic = session.createTopic("test-topic"); 124 // 6、使用会话对象创建生产者对象 125 MessageProducer producer = session.createProducer(topic); 126 // 7、使用会话对象创建一个消息对象 127 TextMessage textMessage = session.createTextMessage("hello!test-topic"); 128 TextMessage textMessage1 = session.createTextMessage("hello!test-topic111"); 129 // 8、发送消息 130 producer.send(textMessage); 131 producer.send(textMessage1); 132 //session.commit(); 133 // 9、关闭资源 134 producer.close(); 135 session.close(); 136 connection.close(); 137 } 138 139 /** 140 * 创建一对多 消费者 141 * 142 * @author changwei 143 * @date 2018-6-4 上午9:28:56 144 * @throws Exception 145 */ 146 @Test 147 public void TestTopicConsumer() throws Exception { 148 // 1、创建工厂连接对象,需要制定ip和端口号 149 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( 150 "tcp://118.25.26.50:61616"); 151 // 2、使用连接工厂创建一个连接对象 152 Connection connection = connectionFactory.createConnection(); 153 // 3、开启连接 154 connection.start(); 155 // 4、使用连接对象创建会话(session)对象 156 Session session = connection.createSession(false, 157 Session.AUTO_ACKNOWLEDGE); 158 // 5、使用会话对象创建目标对象,包含queue和topic(一对一和一对多) 159 Topic topic = session.createTopic("test-topic"); 160 // 6、使用会话对象创建生产者对象 161 MessageConsumer consumer = session.createConsumer(topic); 162 // 7、向consumer对象中设置一个messageListener对象,用来接收消息 163 consumer.setMessageListener(new MessageListener() { 164 165 public void onMessage(Message message) { 166 // TODO Auto-generated method stub 167 if (message instanceof TextMessage) { 168 TextMessage textMessage = (TextMessage) message; 169 try { 170 System.out.println(textMessage.getText()); 171 } catch (JMSException e) { 172 // TODO Auto-generated catch block 173 e.printStackTrace(); 174 } 175 } 176 } 177 }); 178 179 // new BufferedReader(new InputStreamReader(System.in)).readLine(); 180 // 8、程序等待接收用户消息 181 System.in.read(); 182 // 9、关闭资源 183 consumer.close(); 184 session.close(); 185 connection.close(); 186 } 187 188 189 }