Как получить сообщение из очереди MQ и опубликовать то же сообщение в теме с помощью Spring Boot - PullRequest
0 голосов
/ 10 июня 2019

Я занимаюсь разработкой весеннего загрузочного приложения, которое должно получить сообщение от 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;
                    }
                });


    }
...