У меня есть загрузочное приложение Spring
Оно получает сообщения в формате Json от ActiveMQ
@Component class Receiver {
@JmsListener(destination = "queue")
public void receiveMessage(BusMessage message) {
System.out.println("Received <" + message + ">");
}
Проблема в том, что иногда Json может приходить без правильного заголовка
Вв этом случае я получаю исключение
org.springframework.messaging.converter.MessageConversionException: Cannot convert from [java.lang.String] to [cam.melexis.minipcs2socketioserver.BusMessage] for org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener$MessagingMessageConverterAdapter$LazyResolutionMessage@38bd4ff9, failedMessage=org.springframework.jms.listener.adapter.AbstractAdaptableMessageListener$MessagingMessageConverterAdapter$LazyResolutionMessage@38bd4ff9
Одним из решений может быть получение сообщения в виде строки и десериализация его
@Component class Receiver {
@JmsListener(destination = "queue")
public void receiveScannerMessage(Message message, Session session) {
System.out.println("Received <" + message + ">");
}
Но я хочу сделать что-то более изящное
Чтобы упростить все @ JmsListener
И сделать мою кривую обучения в Spring более изогнутой:)
Зная, что все сообщения будут поступать в формате Json, могу ли я добавить отсутствующий заголовок ко всем входящим сообщениям?
Или это другой "лучший" способ существования?