Jms 主题无法接收消息
我有一个非持久主题客户端,它应该使用侦听器异步接收消息。 当在主题上发布消息时,我可以在管理控制台上看到消息被发布和使用,但我的客户端从未收到它 客户端能够正确地建立连接,因为我可以在控制台上跟踪它 有什么建议吗 编辑: 做了更多的分析,发现问题在于用于连接的API。 当我使用以下代码时,我能够收听消息:Jms 主题无法接收消息,jms,spring-jms,jms-topic,Jms,Spring Jms,Jms Topic,我有一个非持久主题客户端,它应该使用侦听器异步接收消息。 当在主题上发布消息时,我可以在管理控制台上看到消息被发布和使用,但我的客户端从未收到它 客户端能够正确地建立连接,因为我可以在控制台上跟踪它 有什么建议吗 编辑: 做了更多的分析,发现问题在于用于连接的API。 当我使用以下代码时,我能够收听消息: TopicConnection conn; TopicSession session = conn.createTopicSession(false, TopicSession.AUTO_AC
TopicConnection conn;
TopicSession session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic(monacoSubscriberEmsTopic);
conn.start();
tsubs = session.createSubscriber(topic);
tsubs.setMessageListener(listener);
但当我使用以下代码时,它就不起作用了:
DefaultMessageListenerContainer listenerContainer = createMessageListenerContainer();
private DefaultMessageListenerContainer createMessageListenerContainer() {
DefaultMessageListenerContainer listenerContainer = new DefaultMessageListenerContainer();
listenerContainer.setClientId(clientID);
listenerContainer.setDestinationName(destination);
listenerContainer.setConnectionFactory(connectionFactory);
listenerContainer.setConcurrentConsumers(minConsumerCount);
listenerContainer.setMaxConcurrentConsumers(maxConsumerCount);
listenerContainer.setPubSubDomain(true);
listenerContainer.setSessionAcknowledgeModeName(sessionAcknowledgeMode);
if (messageSelector != null)
listenerContainer.setMessageSelector(messageSelector);
listenerContainer.setSessionTransacted(true);
return listenerContainer;
}
listenerContainer.initialize();
listenerContainer.start();
第二种方法有什么问题?订阅者订阅的主题是否与publisher订阅的主题相同?是的,我已经检查过了。主要的问题是消息被消耗了!!消息上任何导致其立即过期的TTL属性?对消费者的任何过滤都会导致侦听器无法获取它?在我的帖子中添加了一些新信息编辑。