一、生产者java
package com.demo.helloworld; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class JMSProducer { // 默认链接用户名 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; // 默认链接密码 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; // 默认链接地址 private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL; // 队列名称 private static final String QUENENAME = "Jack"; public static final int SENDNUM = 10; // 链接工厂 static ConnectionFactory connectionFactory; // 链接 static Connection connection = null; // 会话 接受或者发送消息的线程 static Session session; // 消息的目的地 static Destination destination; // 消息生产者 static MessageProducer messageProducer; // 建立链接 static { // 实例化链接工厂 connectionFactory = new ActiveMQConnectionFactory(JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BROKEURL); try { // 经过链接工厂获取链接 connection = connectionFactory.createConnection(); // 启动链接 connection.start(); // 建立session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); // 建立一个名称为Jack的消息队列 destination = session.createQueue(JMSProducer.QUENENAME); // 建立消息生产者 messageProducer = session.createProducer(destination); } catch (JMSException e) { System.out.println("建立链接异常"); } } // 发送消息 public static void sendMessage(String message) { try { TextMessage txtMsg = session.createTextMessage(message); messageProducer.send(txtMsg); session.commit(); } catch (JMSException e) { System.out.println("消息发送异常"); } } }
二、消费者apache
package com.demo.helloworld; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class JMSConsumer { // 默认链接用户名 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; // 默认链接密码 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; // 默认链接地址 private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL; // 队列名称 private static final String QUENENAME = "Jack"; static ConnectionFactory connectionFactory;// 链接工厂 static Connection connection = null;// 链接 static Session session;// 会话 接受或者发送消息的线程 static Destination destination;// 消息的目的地 static MessageConsumer messageConsumer;// 消息的消费者 static { // 实例化链接工厂 connectionFactory = new ActiveMQConnectionFactory(JMSConsumer.USERNAME, JMSConsumer.PASSWORD, JMSConsumer.BROKEURL); try { // 经过链接工厂获取链接 connection = connectionFactory.createConnection(); // 启动链接 connection.start(); // 建立session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 建立一个链接Jack的消息队列 destination = session.createQueue(JMSConsumer.QUENENAME); // 建立消息消费者 messageConsumer = session.createConsumer(destination); } catch (JMSException e) { System.out.println("建立链接异常"); } } // 消费消息 public static void consume() { try { while (true) { TextMessage textMessage = (TextMessage) messageConsumer.receive(); if (textMessage != null) { System.out.println(textMessage.getText()); } else { break; } } } catch (JMSException e) { System.out.println("消息接收异常"); } } }
三、测试session
package com.demo.helloworld; import org.junit.Test; public class JMSTest { @Test public void testProducer() { JMSProducer.sendMessage("我发送消息了哦"); } @Test public void testConsumer() { JMSConsumer.consume(); } }