Лучше всего использовать текст в очереди, так как вы сможете намного легче отлаживать, а также не ограничиваться одним и тем же языком / структурой или даже версией библиотек в приложениях по обе стороны очереди.
Если вы действительно хотите эту жесткую связь (т.е. когда вы используете очередь внутри одного приложения и вам не нужно проверять сообщения вручную в очередях), вы можете сделать это:
вместоиз return session.createTextMessage(s);
do return session.createObjectMessage(msg);
Еще одна вещь: учтите, что использование JMS ObjectMessage может вызвать проблемы с безопасностью, если у вас нет 100% контроля над сообщениями, публикующими код.Поэтому это не разрешено в настройках ActiveMQ по умолчанию.Вы должны включить это в настройках клиента и сервера.Для справки см. Эту страницу: http://activemq.apache.org/objectmessage.html