我初步看了下,JMS的通讯方式好像是 通过发送队列和接受队列的。
我用spring jms和消息队列进行通讯,那我如何匹配发送和接受呢?
比如说 有 4个用户的做操作, 发送队列里有4个消息,服务器处理完成后,返回接受队列4个应答,那4个用户对应了4个线程,我怎么能知道队列里面取出来的是哪个用户的应答消息?
小弟刚学,不懂,请各位大哥大姐指点!
public void send(final String text){
GeneralLog.debug(commId, "send:["+text+"]");
jmsTemplate.send(new MessageCreator(){
public Message createMessage(Session session)throws JMSException{
return session.createTextMessage(text);
}
});
}
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage text = (TextMessage)message;
try {
String rspMsg = text.getText();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
以上是代码,通过send 发送, 然后好像是如果队列中有消息就会自动调用onMessage,看书好像是这样说的。
还有,发送和接受是 调用jndi的?是不是在websphere之类的服务器上配置一下jndi就可以了?
最好能给我个完整的例子,谢谢了!

解决方案 »

  1.   

    又沉下去了,oh my god!
      

  2.   

    可以设置filter,用来过滤不同的的queue。或者把不同的人分成不同的destination。做动态注册consumer。
      

  3.   

    reply稍微麻烦一点儿,要在发送端传递replyTo的destination,然后在consumer里取到,再通过destination发送jms。一般来说jms都是单项的,不需要应答。
      

  4.   

    to xyz20003:
    昨晚没在,我只实现客户端,我去读取接收对列中的东西,需要自己去匹配发送,我做为客户端我如何动态注册consumer?能不能给个小例子,或者文章的连接之类的,谢谢了