发送消息
public void asynsendMessage() throws JMSException {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("user");
MessageProducer messageProducer = session.createProducer(queue);
TemporaryQueue temporaryQueue = session.createTemporaryQueue();
TextMessage textMessage = session.createTextMessage("hello!!!");
textMessage.setJMSReplyTo(temporaryQueue);
messageProducer.send(textMessage);
System.out.println("发送完成");
connection.start();
MessageConsumer consumer = session.createConsumer(temporaryQueue);
consumer.setMessageListener(message -> {
try {
MessageListenerImpl.consumerMessage(message);
} catch (JMSException e) {
e.printStackTrace();
}
});
}
接收消息
public void receiveMessageAndReply() throws Exception {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
activeMQConnectionFactory.setTrustAllPackages(true);
Connection connection = activeMQConnectionFactory.createConnection();
Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
connection.start();
Queue queue = session.createQueue("user");
MessageConsumer messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(message -> {
try {
String text = ((TextMessage) message).getText();
System.out.println(text);
Destination jmsReplyTo = message.getJMSReplyTo();
System.out.println(jmsReplyTo);
message.acknowledge();
MessageProducer producer = session.createProducer(jmsReplyTo);
TextMessage textMessage = session.createTextMessage("true");
producer.send(textMessage);
} catch (JMSException e) {
e.printStackTrace();
}
});
}