需要引入activemq-all-5.16.0.jar
Sender
package com.felix;
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.ActiveMQConnectionFactory;
public class Send {
public static void main(String arg[]) throws JMSException, InterruptedException {
// ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("felix", "felix", "tcp://localhost:61616");
// 通过connectionFactory工厂对象创建connect连接,并调用connect的start方法开启连接
Connection con = connectionFactory.createConnection();
con.start();
// 通过connection创建session用于接收消息,参数1为是否开启事务,参数2为签收模式,一般选择自动签收
Session session = con.createSession(true, Session.CLIENT_ACKNOWLEDGE);
// 通过session创建Destination对象,指的是一个客户端用来指定生产消息目标和消费消息来源来源的对象,
Destination destiantion = session.createQueue("first");
// 需要通过session对象创建消息的发送和接收对象,
MessageProducer producer = session.createProducer(null);
for (int i = 0; i < 10; i++) {
TextMessage tex = session.createTextMessage("我是消息内容" + i);
producer.send(destiantion, tex);
// TimeUnit.SECONDS.sleep(1);
}
session.commit();//提交数据
// session.rollback();//不提交数据
if (con != null) {
con.close();
}
}
}
Receiver(消费者)
package com.felix;
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.ActiveMQConnectionFactory;
public class Receiver {
public static void main(String[] args) throws JMSException {
//创建connectionFactior对象
// ConnectionFactory connectionFactior = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER, org.apache.activemq.spring.ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");
ConnectionFactory connectionFactior = new ActiveMQConnectionFactory("felix", "felix", "tcp://localhost:61616");
//创建connection连接
Connection con = connectionFactior.createConnection();
con.start();
Session session = con.createSession(true, Session.CLIENT_ACKNOWLEDGE);
Destination destination = session.createQueue("first");
MessageConsumer consumer = session.createConsumer(destination);
while(true){
TextMessage tex = (TextMessage)consumer.receive();
tex.acknowledge();
session.commit();
System.out.println(tex.getText());
}
}
}