jms Queue 示例 ,服务端向客户端发送消息,并等待客户端返回消息

  • Post author:
  • Post category:其他


服务端向queue 发送一条消息, 并等待客户端进行处理,然后接收客户端返回的消息

服务端在向客户端发送消息的时候设置了JMSReplyTo  ,msg.setJMSReplyTo(responseQueue);

然后客户端取得responseQueue  ,并将返回的消息发送到responseQueue,以便服务端进行接收

但是responseQueue  队列里的消息有很多,需要区分哪一条是服务器端想要接收和,于是需要进行消息过滤

MessageConsumer (QueueReceiver, TopicSubscriber 的你类) 消息处理类有两种处理方式 ,同步或异步

receive()  同步

setMessageListener(MessageListener listener)  异步

server

msg.setJMSReplyTo(responseQueue);

String filter = “JMSCorrelationID='” + msg.getJMSMessageID() + “‘”;

session.createReceiver(responseQueue, filter);

client

responseMsg.setJMSCorrelationID(msg.getJMSMessageID());

Queue responseQueue = (Queue) msgObj.getJMSReplyTo();

session.createSender(responseQueue).send(responseMsg);

jndi.properties



过滤

filter

server

String uuid = UUID.randomUUID().toString();

msg.setStringProperty(“uuid”, uuid);

String filter = “JMSCorrelationID='” + uuid + “‘”;

QueueReceiver receiver = session.createReceiver(responseQueue, filter);

client

responseMsg.setJMSCorrelationID(msg.getStringProperty(“uuid”));



版权声明:本文为jixiuffff原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。