Java消息服务~JMSReplyTo示例
生活随笔
收集整理的這篇文章主要介紹了
Java消息服务~JMSReplyTo示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在下面的例子中,首先創建兩個Queue,發送者給一個Queue發送,接收者接收到消息之后給另一個Queue回復一個Message,然后再創建一個消費者來接受所回復的消息
import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.command.ActiveMQQueue; /*** TODO 在此寫上類的相關說明.<br>* @author gqltt<br>* @version 1.0.0 2021年10月21日<br>* @see * @since JDK 1.5.0*/ public class JMSReplyToDemo {public static void main(String[] args) throws Exception {ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost"); Connection connection = factory.createConnection(); connection.start(); //消息發送到這個Queue Queue queue = new ActiveMQQueue("testQueue"); //消息回復到這個Queue Queue replyQueue = new ActiveMQQueue("replyQueue"); final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //創建一個消息,并設置它的JMSReplyTo為replyQueue。 Message message = session.createTextMessage("Andy"); message.setJMSReplyTo(replyQueue); MessageProducer producer = session.createProducer(queue); producer.send(message); //消息的接收者 MessageConsumer comsumer = session.createConsumer(queue); comsumer.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { //創建一個新的MessageProducer來發送一個回復消息。 MessageProducer producer = session.createProducer(m.getJMSReplyTo()); producer.send(session.createTextMessage("Hello " + ((TextMessage) m).getText())); } catch (JMSException e1) { e1.printStackTrace(); } } }); //這個接收者用來接收回復的消息 MessageConsumer comsumer2 = session.createConsumer(replyQueue); comsumer2.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println(((TextMessage) m).getText()); } catch (JMSException e) { e.printStackTrace(); } } }); } }??? 首先消息生產者發送一個消息,內容為“Andy”, 然后消費者收到這個消息之后根據消息的JMSReplyTo,回復一個消息,內容為“Hello Andy‘。 最后在回復的Queue上創建一個接收回復消息的消費者,它輸出所回復的內容。?
??? 運行上面的程序,可以得到下面的輸出結果:?
總結
以上是生活随笔為你收集整理的Java消息服务~JMSReplyTo示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struts2 防止重复提交 与 进入等
- 下一篇: Java并发编程实战~Lock