ActiveMQ Consumer使用MessageListener

it2024-04-11  46

两种消费方法:

同步阻塞方式(receive()) receive方法在能够接收到消息之前(或超时前)将一直阻塞异步非阻塞(监听器 onMessage()) 消息到达之后,系统自动调用MessageListener的onMessage方法

关闭资源前,添加 System.in.read() ,否则还没来得及消费,程序就结束了!

public class JmsC { public static final String URL = "tcp://192.168.179.129:61616"; public static final String QUEUE_NAME = "queue1"; public static void main(String[] args) throws JMSException, IOException { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(URL); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue(QUEUE_NAME); MessageConsumer consumer = session.createConsumer(queue); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { if (null != message && message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; try { System.out.println(textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } }); System.in.read(); consumer.close(); session.close(); connection.close(); } }
最新回复(0)