2017-01-18 2 views
0

Я пытаюсь использовать 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"/> 

ответ

0

Я не уверен, что вы подразумеваете под «тело сообщения является недействительным».

Я только что сделал точно такое же изменение в образце, и она работала хорошо для меня ...

Please type something and hit <enter> 

foo 
foo 

мне пришлось добавить -Dorg.apache.activemq.SERIALIZABLE_PACKAGES=* в командной строке, так как ActiveMQ потребности Whitelisting классов (целое сообщение сериализован в каналах с поддержкой jms).

+0

Спасибо за ответ, Гэри. Возможно ли отправить сообщение как строку, а не сериализованный объект? –

+0

Не с JMS-поддерживаемым каналом - используйте пару адаптеров канала для этого - полезная нагрузка сообщения становится телом сообщения JMS; заголовки сопоставляются с заголовками JMS (до тех пор, пока значение «extract-payload» равно true). Каналы, поддерживаемые JMS, предназначены для сохранения, а не для распространения данных в других приложениях. –

+0

Хорошо. Поскольку я использую pub/sub в той же теме, как мне избежать получения того же сообщения, которое я только что отправил при использовании пары адаптеров канала? –

Смежные вопросы