使XMLSignature可序列化以将其存储在Hazelcast中

时间:2015-05-27 07:14:25

标签: java xml serialization hazelcast

我在Java项目中使用javax.xml.crypto.dsig.XMLSignature来签署org.w3c.dom.Document对象(在Signature.Object元素中)。 然后我需要序列化签名以将其存储在Hazelcast中。

XMLSignature未实现Serializable。如何使XMLSignature可序列化以便能够存储在Hazelcast中?

我在使用XMLSignature对象保存地图时遇到了这个Hazelcast异常:

  

com.hazelcast.nio.serialization.HazelcastSerializationException:   java.io.NotSerializableException:   org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignature

我尝试将XMLSignature包装到MyXMLSignature到实现Serializable但没有成功的类。

1 个答案:

答案 0 :(得分:1)

我尝试在Hazelcast存储的实体中避免使用系统和其他第三方类,但如果我绝对不得不将子类或包装非可序列化类并实现DataSerializable。您可以使用IdentifiedDataSerializable和Portable,但我怀疑在这种情况下是否有必要。

无论如何,标准Serializable是一个可怕的选择。它甚至在20K成员的查询期间显示。它需要在最内层的超类级别实现,以序列化其内容,您无法在其中添加。

阅读本文以比较不同的序列化方法。 Comparing Hazelcast Serialization Methods