JMS Helloworld

一、生产者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();
	}
}
相关文章
相关标签/搜索