如何将JSON对象发送到ActiveMQ?

时间:2016-12-02 14:38:20

标签: java json jms activemq

我正在创建JSON对象,如下所示

 class Abc
 {
 public:
     Abc() { std::cout << " ABC::ABC\n"; }
     Abc& doIT() { std::cout << " Abc::doIT\n"; return *this; }
     ~Abc() { std::cout << " ABC::~ABC\n"; }
 };

我想将此对象发送到ActiveMQ上的队列。 我试图使用以下API

const Abc& ap = Abc().doIT(); //After this line ap references garbage

但由于json对象不可序列化,编译器会抛出错误。

如果我将json对象转换为String,那么它正在工作。

有什么方法可以直接将json对象(不转换为String)转移到队列?

1 个答案:

答案 0 :(得分:1)

不要使用..jms.ObjectMessage,它会导致各种各样的痛苦,痛苦和愤怒。将您的JSON序列化为字符串并发送..jms.TextMessage。

有人说......这一切都取决于你的用例。由于跨平台和服务独立性原因,在传输过程中存在支持基于文本的格式的架构原则。如果这是一个用例,其中相同的应用程序通过JMS共享数据b / w本身,则可以使用该参数来证明使用ObjectMessages。为此,请将您的JSON pojo更新为&#34; ..实现Serializable&#34;然后jms.ObjectMessage将起作用。