我想序列化一个 MQMessage 并将其保存到磁盘/数据库。我的目标是能够在以后反序列化它,并且所有标题、命名属性和内容都完好无损。
要清楚,我需要这样的东西:
byte[] serialize(MQMessage m);
MQMessage deserialize(byte[] b);
这样在执行以下操作时:
MQMessage M = deserialize(serialize(m));
我得到的M
是m
.
如果需要,这需要能够重新提交消息以进行处理(在大型 MQ 网络中,应用程序迟早会吃掉/丢失一些消息)。因此,我需要能够反序列化我想要重新提交的每个 MQMessage 的 1:1 副本(即不仅包括其内容,还包括其标头、属性、编码、格式等...)。
不幸的是,MQMessage 似乎没有实现任何类型的序列化机制。你会怎么做呢?手工制作序列化/反序列化代码是唯一的方法吗?