在 Java 中通过 JMS 发送复杂对象
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3094952/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Sending complex object via JMS in Java
提问by ant
Is it possible to send complex messages via JMS? I can send TextMessages, Messages etc .. but when I try to send my custom object type MyObjecttrough send()method of MessageProducerI get compile error.
是否可以通过 JMS 发送复杂的消息?我可以发送 TextMessages、Messages 等......但是当我尝试发送我的自定义对象类型MyObject槽send()方法时,MessageProducer我得到了编译错误。
Then I tried to cast it, I get cast exception like MyObject cannot be cast to javax.jms.Message
然后我尝试投射它,我得到了投射异常 MyObject cannot be cast to javax.jms.Message
Here is a code I tried :
这是我试过的代码:
MessageProducer messageProducer = session.createProducer(destination);
messageProducer.send((Message)getMyObject()); //where getMyObject method retrieves mapped myObject type
anyone got any advice? thank you
有人有什么建议吗?谢谢
回答by jimr
As long as your object is Serializable, you can use an ObjectMessage
只要您的对象是Serializable,您就可以使用ObjectMessage
MessageProducer producer = session.createProducer( destination );
ObjectMessage message = session.createObjectMessage( getMyObject() );
producer.send( message );
回答by G__
You have one of two problems:
您有以下两个问题之一:
- MyObject does not implement javax.jms.Message
- getMyObject does not return a MyObject (assuming that it does implement Message)
- MyObject 没有实现 javax.jms.Message
- getMyObject 不返回 MyObject(假设它确实实现了 Message)

