У меня возникли проблемы с преобразованием сообщений из RabbitMQ с использованием модуля spring-jms .Ранее я отправлял свои сообщения с использованием конечной точки Rest API, эта конечная точка отправляет сообщение в очередь RabbitMQ и обрабатывает его с помощью методов @ JmsListener .
Внутренне это поведение добавляет поле для определения типа Java,управляется библиотеками Spring.Однако теперь я хочу избежать вызова API Rest, потому что в этом нет необходимости, и я могу отправить сообщение непосредственно в RabbitMQ.
Проблема заключается в том, что Spring пытается преобразовать сообщение JMS для параметра @ JmsListener ,Я не установил тип сообщения, потому что отправителю не нужна эта информация, но теперь я не могу преобразовать ее напрямую, потому что MappingJackson2MessageConverter хочет свойство для этого.
Как можно избежатьЭта проблема?Я хочу иметь возможность обрабатывать все сообщения без необходимости знать тип всех «отправителей».
Бин конвертера сообщений:
@Bean
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
return converter;
}
Пример кода слушателя:
@JmsListener(concurrency = "listener.concurrency", destination = "queue.name", containerFactory = "container.factory")
public void processFile(MyDtoClass dto) {
....
}