Отправка сложного объекта через JMS в Java - PullRequest
12 голосов
/ 22 июня 2010

Можно ли отправлять сложные сообщения через JMS? Я могу отправлять текстовые сообщения, сообщения и т. Д., Но когда я пытаюсь отправить свой собственный тип объекта MyObject через send() метод MessageProducer, я получаю ошибку компиляции.

Затем я попытался разыграть его, я получил исключение, например MyObject cannot be cast to javax.jms.Message

Вот код, который я пробовал:

MessageProducer messageProducer = session.createProducer(destination);
messageProducer.send((Message)getMyObject()); //where getMyObject method retrieves mapped myObject type

кто-нибудь получил совет? спасибо

Ответы [ 2 ]

20 голосов
/ 22 июня 2010

Пока ваш объект Serializable, вы можете использовать ObjectMessage

MessageProducer producer = session.createProducer( destination );
ObjectMessage message = session.createObjectMessage( getMyObject() );
producer.send( message );
0 голосов
/ 22 июня 2010

У вас есть одна из двух проблем:

  1. MyObject не реализует javax.jms.Message
  2. getMyObject не возвращает MyObject (при условии, что он реализует Message)
...