public class CustomerStatusSender {
private JmsTemplate jmsTemplate;
private Topic topic;
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public void setTopic(Topic topic) {
this.topic = topic;
}
public void simpleSend(final String customerStatusMessage) {
jmsTemplate.send(topic, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
TextMessage message = session.createTextMessage("hello from sender.");
message.setStringProperty("content", customerStatusMessage);
return message;
}
});
}
}
这是一个消息侦听器:
public class CustomerStatusListener implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
System.out.println("Subscriber 1 got you! The message is: "
+ message.getStringProperty("content"));
} catch (JMSException ex) {
throw new RuntimeException(ex);
}
}
}
}
在sender类中调用simpleSend()
方法时,订阅此主题的所有侦听器都将异步获得此消息。但是我想知道这个特定的CustomerStatusListener
是否从消息发送方接收消息。异步怎么做?我假设,如果我想异步地做的话,就不能像其中一个答案中建议的那样,在发送器和侦听器中使用replyto
。我需要在sender和listener类中添加什么才能从listener获得消息接收确认?
我以前遇到过这样的情况。我使用了两个主题来处理这个场景。第一个主题用于发布,第二个主题用于回执。下面是我在应用程序中的流程。
我希望它能解决你的问题。
在与JMS合作的过程中,我有一个疑问。据我所知,创建同步消息消费者是可能的。但是,我必须以一定的频率启动它,因为事实上没有侦听器。接下来,为了同步使用队列中的消息,我可以创建一个MDB并将池设置为1。我认为这不是一个好的解决办法。 我的目标是在消息出现在队列中时同步地使用它们。从我的观点来看,上述解决方案并不好:1。不时推出的消费者。2.MDB(通常异步)和池设置为1。 有什么适合我的解决方案吗?
目前,我正在开发一个独立的Java应用程序,它连接到Websphere MQ以发送和接收消息。 流处于异步模式,我们使用类来实现,以便在消息准备就绪时从队列中检索消息。使用侦听器初始化消费者的代码如下: 方法将从池中返回连接,该池使用Apache Commons池库实现。 我的问题是,只要程序在运行,从池中分配给侦听器的连接是否会处于活动状态并绑定到该侦听器?或者该连接是间歇使用的,并且可以被其他
使用twilio-chat.js我如何在一个频道上监听消息?我找到了这个问题,它问如何在多个频道上收听,但我找不到任何东西描述如何在一个频道上做到这一点。
问题内容: 暂时禁用消息侦听器的好方法是什么?我要解决的问题是: 消息侦听器接收到JMS消息 尝试处理该消息时出现错误。 我等待系统再次准备就绪,以便能够处理该消息。 在系统准备就绪之前,我不再需要任何消息,因此… …我想禁用消息监听器。 我的系统已准备好再次处理。 处理失败的消息,并确认JMS消息。 再次启用消息监听器。 现在,我正在使用Sun App Server。我通过在MessageCon
但我需要在通过快照获取所有数据后调用一个方法。如何实现?我应该测试什么?