Я пытаюсь использовать jms: publish-subscribe-channel для pub/sub в одной теме ActiveMQ. Я могу получать сообщения от ActiveMQ на канале очень хорошо, однако, когда я публикую на канал, тело сообщения равно NULL (когда оно получено другим приложением, прослушивающим тему ActiveMQ). Я смог воссоздать проблему, используя spring-integration-samples-> basic-> jms. Я изменил outboundChannelAdapter.xml, чтобы использовать jms: publish-subscribe-channel вместо jms: outbound-channel-adapter. Есть ли еще один шаг, необходимый для публикации простого строкового сообщения? Вот мое изменение кода outboundChannelAdapter.xml:Тело сообщения JMS равно null при публикации в jms: publish-subscribe-channel
<stream:stdin-channel-adapter id="stdin" channel="stdinToJmsoutChannel"/>
<jms:publish-subscribe-channel id="stdinToJmsoutChannel" topic="requestTopic" />
<stream:stdout-channel-adapter id="stdout" channel="stdinToJmsoutChannel" append-newline="true"/>
Спасибо за ответ, Гэри. Возможно ли отправить сообщение как строку, а не сериализованный объект? –
Не с JMS-поддерживаемым каналом - используйте пару адаптеров канала для этого - полезная нагрузка сообщения становится телом сообщения JMS; заголовки сопоставляются с заголовками JMS (до тех пор, пока значение «extract-payload» равно true). Каналы, поддерживаемые JMS, предназначены для сохранения, а не для распространения данных в других приложениях. –
Хорошо. Поскольку я использую pub/sub в той же теме, как мне избежать получения того же сообщения, которое я только что отправил при использовании пары адаптеров канала? –