Сохраните сообщение, полученное / отправленное в очередь, используя JmsListener - PullRequest
0 голосов
/ 15 февраля 2019

Есть ли способ поместить перехватчик в jms listener. Требование - сохранить запрос и ответ при чтении и записи в очередь сообщений

@JmsListener(destination = "${ibm.mq.queueName}", containerFactory = "containerFactory")
    public void readAndProcessMessage(Message<?> message) throws Exception {
        UnProcessedEvent unProcessedEvent;
        String eventMessage = message.getPayload().toString();
        log.info("Received an event: " + eventMessage);
        try {
            String iban = getIban(eventMessage);
            // Identifying Topic
            for (Mandate mandate : configProperties.getMandates()) {
                for (Topic topic : mandate.getTopic()) {
                    if (topic.getAccountNumber().equals(iban)) {
                        publisherService.publishEvent(iban, eventMessage);
                        return;
                    }
                }
            }
            unProcessedEvent = UnProcessedEvent.builder().incomingReqPayload((eventMessage)).reason("No Topic Found")
                    .reasonCode(HttpStatus.BAD_REQUEST.toString()).build();
            unprocessedEventRepository.save(unProcessedEvent);
        } catch (JAXBException e) {
            log.info("Exception while parsing the event message: " + e.getMessage());
            unProcessedEvent = UnProcessedEvent.builder().incomingReqPayload((eventMessage)).reason("Bad Request")
                    .reasonCode(HttpStatus.BAD_REQUEST.toString()).build();
            unprocessedEventRepository.save(unProcessedEvent);
        }
    }
...