03.Spring集成ActiveMq-topic

先启动订阅者,再启动发布者,否则发布的消息是废消息

package com.serlfy.study.activemq.queue;

import java.io.IOException;

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsConsumer_topic {

	private static final String URL="tcp://192.168.0.106:61616";
	private static final String TOPIC_NAME="topic01";
	
	public static void main(String[] args) throws JMSException, IOException {
		
		System.out.println("3号消费者!");
		ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory(URL);
		Connection  connection=factory.createConnection();
		connection.start();
		
		Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Topic topic=session.createTopic(TOPIC_NAME);
		
		MessageConsumer consumer=session.createConsumer(topic);
		
		
		//利用消息监听器
		consumer.setMessageListener(new MessageListener() {
			
			@Override
			public void onMessage(Message message) {
				if(null!=message&& message instanceof TextMessage){
					TextMessage textMessage=(TextMessage) message;
					
					try {
						System.out.println("consumer接收消息:"+textMessage.getText());
					} catch (JMSException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		System.in.read();//保持会话
		consumer.close();
		session.close();
		connection.close();
	}
}

3.3.3 发布者
package com.serlfy.study.activemq.queue;

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsProduce_topic {

	private static final String URL="tcp://192.168.0.106:61616";
	private static final String TOPIC_NAME="topic01";
	
	public static void main(String[] args) throws JMSException {
		ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory(URL);
		Connection  connection=factory.createConnection();
		connection.start();
		
		Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Topic topic=session.createTopic(TOPIC_NAME);
		MessageProducer producer=session.createProducer(topic);
		
		for(int i=0;i<3;i++){
			TextMessage  msg=session.createTextMessage("topic msg----0"+i);
			
			producer.send(msg);
		}
		System.out.println("发送完成!");
		producer.close();
		session.close();
		connection.close();
	}
}

posted @ 2022-08-30 23:39  NIANER2011  阅读(30)  评论(0编辑  收藏  举报