[英]@SendTo not working in JMS (ActiveMQ integration) with Spring Boot
我面临的一个奇怪的问题,我不能给我的信息发送到demoQueue
只使用@SendTo(“demoQueue”)标注在ActiveMQ中,我都试过之后,我设法送使用消息队列JmsTemplate
,但我也在博客中阅读,@ SendTo将为您完成此操作。
以下是我尝试的代码,该版本无法正常工作。
@Component
public class ProducerTask {
private static final Logger LOG = LoggerFactory.getLogger(ProducerTask.class);
@Scheduled(cron = "0 0/3 * * * *")
@SendTo("demoQueue")
public String pushToQueue() {
String str = "Running scheduled task >> " + ZonedDateTime.now();
LOG.info(str);
return str;
}
}
使用JmsTemplate
的版本运行良好。
@Component
public class ProducerTask {
private static final Logger LOG = LoggerFactory.getLogger(ProducerTask.class);
@Autowired
private JmsTemplate jmsTemplate;
@Scheduled(cron = "0 0/3 * * * *")
public String pushToQueue() {
String str = "Running scheduled task >> " + ZonedDateTime.now();
LOG.info(str);
jmsTemplate.setDefaultDestinationName("demoQueue");
jmsTemplate.send(new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(str);
}
});
// TODO put the logic for consuming in different bean and inject here and call that method here.
return str;
}
}
请解释,我很困惑。 谢谢。
您不能将@SendTo
注释用作任何方法的一部分。 它在@JmsListener
(或其他监听器,例如@KafkaListener
)的上下文中工作,请参阅此博客文章 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.