Asynchronous 异步JMS消息传递
如何实现异步JMS应用程序?是否有必要更改服务器程序或只是我应该更改客户端代码?Asynchronous 异步JMS消息传递,asynchronous,jms,Asynchronous,Jms,如何实现异步JMS应用程序?是否有必要更改服务器程序或只是我应该更改客户端代码? 我想知道如何将同步JMS消息传递更改为异步?非常简单。您需要为消费者分配一个消息侦听器以异步接收消息 consumer.setMessageListener(new MessageListener). Google将为您提供大量示例。JavaEE中的消息驱动bean是异步的。天生的。简单的MDB可以如下所示: @MessageDriven(mappedName = "jms/MyQueue") // JNDI n
我想知道如何将同步JMS消息传递更改为异步?非常简单。您需要为消费者分配一个消息侦听器以异步接收消息
consumer.setMessageListener(new MessageListener).
Google将为您提供大量示例。JavaEE中的消息驱动bean是异步的。天生的。简单的MDB可以如下所示:
@MessageDriven(mappedName = "jms/MyQueue") // JNDI name for a specific Destination (queue or topic)
public class MyMDB implements MessageListener{
public void onMessage(Message msg){
// handle it async.
}
}
否则,在普通java/JMS中,它几乎是一样简单、相同的代码,但不是@MessageDriven注释,而是必须执行一些初始化代码来启动和运行JMS使用者。当然,还必须完成标准JMS设置过程,比如获取连接工厂、创建连接和查找目标
public class MyConsumer implements MessageListener{
public void init(Connection conn, Destination dest){
// connection and destination from JNDI, or some other method.
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer cons = sess.createConsumer(dest);
cons.setMessageListener(this);
conn.start();
}
@Override
public void onMessage(Message msg) {
// Do whatever with message
}
}
JMS本质上是异步的,我不理解你,你是程序员吗?不,我只是搜索了j2ee中的异步方法,当我熟悉JMS时,我发现客户端可以异步地从服务器接收消息。我想知道我该怎么做?