MQ JMS发送消息并接收客户端回复
来源:互联网 发布:淘宝上好吃的零食推荐 编辑:程序博客网 时间:2024/05/22 03:03
- import java.util.Scanner;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageListener;
- import javax.jms.Queue;
- import javax.jms.QueueConnection;
- import javax.jms.QueueReceiver;
- import javax.jms.QueueSender;
- import javax.jms.QueueSession;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import com.ibm.mq.jms.MQQueueConnectionFactory;
- public class MQSender implements MessageListener{
- MQQueueConnectionFactory mcf;
- QueueConnection qconn;
- final String HOSTNAME = "127.0.0.1";
- final int PORT = 1414;
- final String QUEUEMANAGER_NAME = "QM1";
- final String QUEUE_NAME = "Q1";
- final String QUEUE_NAME2 = "Q2";
- boolean replyed = false;
- private void openConnection() throws JMSException {
- mcf = new MQQueueConnectionFactory();
- mcf.setHostName(HOSTNAME);
- mcf.setPort(PORT);
- mcf.setQueueManager(QUEUEMANAGER_NAME);
- qconn = mcf.createQueueConnection();
- qconn.start();
- }
- private void sendMessage(String msgInfo) throws JMSException, InterruptedException {
- openConnection();
- QueueSession session = qconn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
- Queue queue = session.createQueue(QUEUE_NAME);
- Queue responseQueue = session.createQueue(QUEUE_NAME2);
- QueueSender sender = session.createSender(queue);
- TextMessage msg = session.createTextMessage();
- // msg.setJMSCorrelationID("123-123456");
- // msg.setIntProperty("AccountID", 123);
- msg.setJMSReplyTo(responseQueue); //设置回复队列
- msg.setText(msgInfo);
- sender.send(msg);
- System.out.println("消息发送 : JMSMessage" + msg.getJMSMessageID());
- //接收回复信息
- System.out.println("等待客户端回复队列:"+ msg.getJMSReplyTo());
- String filter = "JMSCorrelationID='" + msg.getJMSMessageID() + "'";
- QueueReceiver reply = session.createReceiver(responseQueue,filter);
- //同步方式等待接收回复
- // TextMessage resMsg = (TextMessage) reply.receive(60 * 1000);
- // if(resMsg != null){
- // System.out.println("客户端回复消息 : " + resMsg.getText() + " JMSCorrelation" + resMsg.getJMSCorrelationID());
- // }else{
- // System.out.println("等待超时!");
- // }
- //异步方式接收回复
- reply.setMessageListener(this);
- while(!replyed)
- Thread.sleep(1000);
- qconn.stop();
- sender.close();
- session.close();
- disConnection();
- }
- public void onMessage(Message message) {
- try {
- String textMessage = ((TextMessage) message).getText();
- System.out.println("客户端回复消息 : " + textMessage+ " JMSCorrelation" + message.getJMSCorrelationID());
- } catch (JMSException e) {
- e.printStackTrace();
- }finally{
- replyed = true;
- }
- }
- private void disConnection() throws JMSException {
- qconn.close();
- }
- public static void main(String[] args) throws JMSException, InterruptedException {
- MQSender ms = new MQSender();
- Scanner scan = new Scanner(System.in);
- System.out.print("输入信息:");
- ms.sendMessage(scan.next());
- System.out.print("消息发送完毕!");
- }
- }
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageListener;
- import javax.jms.Queue;
- import javax.jms.QueueConnection;
- import javax.jms.QueueReceiver;
- import javax.jms.QueueSession;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import com.ibm.mq.jms.MQQueueConnectionFactory;
- public class MQRecevicer implements MessageListener{
- MQQueueConnectionFactory mcf;
- QueueConnection qconn;
- QueueSession session;
- final String HOSTNAME = "127.0.0.1";
- final int PORT = 1414;
- final String QUEUEMANAGER_NAME = "QM1";
- final String QUEUE_NAME = "Q1";
- final String QUEUE_NAME2 = "Q2";
- boolean replyed = false;
- public void openConnection() throws JMSException {
- mcf = new MQQueueConnectionFactory();
- mcf.setHostName(HOSTNAME);
- mcf.setPort(PORT);
- mcf.setQueueManager(QUEUEMANAGER_NAME);
- qconn = mcf.createQueueConnection();
- qconn.start();
- }
- public void disConnection() throws JMSException {
- qconn.close();
- }
- public void recevicerMessage(String reply) throws JMSException, InterruptedException {
- openConnection();
- session = qconn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
- Queue queue = session.createQueue(QUEUE_NAME);
- QueueReceiver recevier = session.createReceiver(queue);
- //同步方式接收消息并回复
- // TextMessage textMessage = (TextMessage) recevier.receive();
- // System.out.println("接收消息 : " + textMessage.getText() + " JMSMessage" +textMessage.getJMSMessageID());
- // Queue responseQueue = (Queue) textMessage.getJMSReplyTo();
- // if(responseQueue != null){
- // TextMessage responseMsg = session.createTextMessage();
- // responseMsg.setJMSCorrelationID(textMessage.getJMSMessageID());
- // responseMsg.setText("This message is reply from client..."+textMessage.getText());
- // session.createSender(responseQueue).send(responseMsg);
- // System.out.println("客户端回复队列:"+responseQueue.toString()+" JMSCorrelation"+responseMsg.getJMSCorrelationID());
- // }else{
- // System.out.println("服务端回复队列为空");
- // }
- //异步方式接收消息并回复
- recevier.setMessageListener(this);
- while(!replyed)
- Thread.sleep(1000);
- qconn.stop();
- recevier.close();
- session.close();
- disConnection();
- }
- public void onMessage(Message message) {
- try {
- String textMessage = ((TextMessage) message).getText();
- System.out.println("接收消息 : " + textMessage + " JMSMessage" +message.getJMSMessageID());
- Queue responseQueue = (Queue) message.getJMSReplyTo();
- if(responseQueue != null){
- TextMessage responseMsg = session.createTextMessage();
- responseMsg.setJMSCorrelationID(message.getJMSMessageID());
- responseMsg.setText("This message is reply from client:"+textMessage);
- session.createSender(responseQueue).send(responseMsg);
- System.out.println("客户端回复队列:"+responseQueue+" JMSCorrelation"+responseMsg.getJMSCorrelationID());
- }else{
- System.out.println("服务端回复队列为空");
- }
- } catch (JMSException e) {
- e.printStackTrace();
- }finally{
- replyed = true;
- }
- }
- public static void main(String[] args) throws JMSException, InterruptedException {
- MQRecevicer mr = new MQRecevicer();
- System.out.println("正在接收消息...");
- mr.recevicerMessage("消息已经收到,这是接收端的回复!");
- System.out.println("消息接收完毕!");
- }
- }
0 0
- MQ JMS发送消息并接收客户端回复
- MQ JMS发送消息并接收客户端回复
- python实现jms客户端(发送接收消息)
- Spring整合JMS、IBM MQ发送和接收消息
- java 实现jms的客户端(发送接收消息)
- java 实现jms的客户端(发送接收消息)
- 配置WAS中的JMS接收MQ消息
- WebSphere MQ发送接收消息_二
- jms Queue 示例 ,服务端向客户端发送消息,并等待客户端返回消息
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- IBM WebSphere MQ发送消息和接收消息
- Sping JMS使用消息转换器发送或接收消息
- Spring JMS 异常消息接收&发送Pub/Sub域消息
- WebSphereMq使用JMS发送消息和接收消息
- activemq使用JMS发送消息和接收消息
- spring消息之使用jms发送和接收消息
- Wesbphere mq 接收和发送消息及文件
- 彩色TabBar切换动画实现
- Android Service绑定与跨进程通信
- .NET平台和C#编程基础知识复习
- HDU1162
- 大家对华为的评价
- MQ JMS发送消息并接收客户端回复
- PAT 1025. PAT Ranking (25)
- VB.NET线程池应用实例
- 第一课python
- mybatis实现数据的批量删除
- POJ 3169 Layout(差分约束)
- 安装python软件找不到setuptools的解决方案
- Spring 的应用模块笔记
- 控制textbox里的值大于35,小于52