Я занимаюсь разработкой весеннего загрузочного приложения, которое должно получить сообщение от IBM MQ и опубликовать это же сообщение в теме в SpringBoot JMS. Я могу получить сообщение в onMessage()
из MessageListener
, но не могу опубликовать то же сообщение в теме. Нужна помощь по этому поводу.
Это реализация класса MessageListener
@Component
public class QueueListener implements MessageListener{
@Autowired
private TopicMessageCreator topicCreator;
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
String json = ((TextMessage) message).getText();
topicCreator.pushMessageToTopic(json);
/*************************************************************/
Я пытался вызвать службу из onMessage()
метода MessageListener
. В службе я делаю jmsTemplate.send
, но получаю сообщение об ошибке, которое гласит: «Не удалось выполнить прослушиватель сообщений JMS, и не был установлен ErrorHandler»
Это класс, который публикует сообщение в теме
@Service
public class TopicMessageCreator {
@Autowired
@Qualifier("jmsTopicTemplate")
private JmsTemplate jmsTopicTemplate;
@Autowired
private Servers server;
public void pushMessageToTopic(String jsonString) {
jmsTopicTemplate.send(new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
TextMessage text = session.createTextMessage(jsonString);
session.createTopic(server.getTopic());
return text;
}
});
}