मैं प्रकाशित: सदस्य बनने के लिए @JmsListener एनोटेशन के आधार पर उदाहरण बनाने के लिए कोशिश कर रहा हूँ: https://github.com/lkrnac/book-eiws-code-samples/tree/master/05-jms/0515-publish-subscribe@JmsListener उपयोग प्रकाशित: सदस्य बनने के विषय
प्रासंगिक कोड के टुकड़े:
@Slf4j
@SpringBootApplication
@EnableScheduling
public class JmsPublishSubscribeApplication {
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(JmsPublishSubscribeApplication.class, args);
}
@Bean
public ActiveMQTopic simpleTopic() {
return new ActiveMQTopic("simpleTopic");
}
}
@Component
public class SimpleMessageListener1 {
@JmsListener(destination = "simpleTopic")
public void readMessage(String message) {
//....
}
}
@Component
public class SimpleMessageListener2 {
@JmsListener(destination = "simpleTopic")
public void readMessage(String message) {
//....
}
}
समस्या यह है कि इस मिल रहा है व्यवहार:
2015-05-17 20:07:04.985 INFO 22983 --- [pool-1-thread-1] n.l.b.e.chapter05.SimpleMessageSender : Sending message: simple message
2015-05-17 20:07:05.070 INFO 22983 --- [enerContainer-1] n.l.b.e.c.JmsPublishSubscribeApplication : Message Received: simple message via listener 2
2015-05-17 20:07:05.975 INFO 22983 --- [pool-1-thread-1] n.l.b.e.chapter05.SimpleMessageSender : Sending message: simple message
2015-05-17 20:07:05.986 INFO 22983 --- [enerContainer-1] n.l.b.e.c.JmsPublishSubscribeApplication : Message Received: simple message via listener 1
2015-05-17 20:07:06.975 INFO 22983 --- [pool-1-thread-1] n.l.b.e.chapter05.SimpleMessageSender : Sending message: simple message
2015-05-17 20:07:06.987 INFO 22983 --- [enerContainer-1] n.l.b.e.c.JmsPublishSubscribeApplication : Message Received: simple message via listener 2
2015-05-17 20:07:07.975 INFO 22983 --- [pool-1-thread-1] n.l.b.e.chapter05.SimpleMessageSender : Sending message: simple message
2015-05-17 20:07:07.994 INFO 22983 --- [enerContainer-1] n.l.b.e.c.JmsPublishSubscribeApplication : Message Received: simple message via listener 1
लेकिन प्रत्येक संदेश को श्रोताओं द्वारा विषयों की परिभाषा के द्वारा उपभोग किया जाना चाहिए। मैं क्या खो रहा हूँ?
एक 'application.properties' जोड़ें और सेट' spring.jms:
यह तो
@JmsListener
एनोटेट विधि में इस्तेमाल किया जा सकता .pub-sub-domain' 'true' पर। –पुष्टि कर सकता है कि यह ध्वज काम करता है। अजीब बात यह है कि जब आप इसे प्रोग्रामिक रूप से करते हैं तो यह काम नहीं करता है: jmsTemplate.setPubSubDomain (सत्य); – luboskrnac
@ एम। डीनियम क्या आप कुछ अंक अर्जित करने के लिए उत्तर नहीं बनाना चाहते हैं? – luboskrnac