2010-06-22 3 views
10

Est-il possible d'envoyer des messages complexes via JMS? Je peux envoyer TextMessages, Messages etc. mais quand j'essaye d'envoyer mon type d'objet fait sur commande MyObjectsend() méthode de MessageProducer Je reçois l'erreur de compilation.Envoi d'un objet complexe via JMS en Java

Alors j'ai essayé de le jeter, je me jetai exception comme MyObject cannot be cast to javax.jms.Message

Voici un code que j'ai essayé:

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

Quelqu'un at-il des conseils? merci

Répondre

18

tant que votre objet est Serializable, vous pouvez utiliser un ObjectMessage

MessageProducer producer = session.createProducer(destination); 
ObjectMessage message = session.createObjectMessage(getMyObject()); 
producer.send(message); 
+0

Existe-t-il un moyen d'envoyer des objets qui ne sont pas sérialisables? Je me souviens avoir lu quelque part que c'était possible! – CKing

+1

Vous pouvez transformer votre objet dans un json – abyteneverlie

0

Vous avez l'un des deux problèmes:

  1. MyObject ne met pas javax.jms.Message
  2. getMyObject ne retourne pas MyObject (en supposant qu'il n'implémente un message)