生产者:
public class Sender {
private static final int SEND_NUMBER=5;
public static void main(String[] args) {
//ConnectionFactory:连接工厂。JMS用它创建连接
ConnectionFactory connectionFactory;
//Connection:JMS 客户端到JMS Privider的连接
Connection connection=null;
//Session :一个发送或接收消息的线程
Session session;
//Destination :消息的目的地,消息发送给谁
Destination destination;
//消息的发送者
MessageProducer producer;
//构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
connectionFactory=new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://localhost:61616"
);
//从构造工厂获取链接对象
try {
connection=connectionFactory.createConnection();
//启动
connection.start();
session=connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
destination=session.createQueue("FirstQueue");
// destination=session.createTopic("FirstTopic");
producer=session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT); //如果不需要持久化设置为DeliveryMode.NON_PERSISTENT
sendMessage(session, producer);
session.commit();
} catch (JMSException e) {
e.printStackTrace();
}finally {
if(null!=connection){
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
public static void sendMessage(Session session,MessageProducer producer) throws JMSException {
for (int i = 0; i <SEND_NUMBER ; i++) {
TextMessage message=session.createTextMessage("active发送的消息"+i);
System.out.println("active发送的消息"+i);
producer.send(message);
}
}
}
消费者:
public class Receiver {
public static void main(String[] args) throws JMSException {
ConnectionFactory connectionFactory;
Connection connection=null;
Session session;
Destination destination;
MessageConsumer consumer;
connectionFactory=new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,"tcp://localhost:61616");
try {
connection=connectionFactory.createConnection();
connection.start();
session=connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);
destination=session.createQueue("FirstQueue");
// destination=session.createTopic("FirstTopic");
consumer=session.createConsumer(destination);
while (true){
TextMessage message=(TextMessage)consumer.receive(0);
if(null!=message){
System.out.println("收到的消息"+message.getText());
}else{
break;
}
}
} catch (JMSException e) {
e.printStackTrace();
}finally {
if (null!=connection){
connection.close();
}
}
}
}