我在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但没有成功的类。
答案 0 :(得分:1)
我尝试在Hazelcast存储的实体中避免使用系统和其他第三方类,但如果我绝对不得不将子类或包装非可序列化类并实现DataSerializable。您可以使用IdentifiedDataSerializable和Portable,但我怀疑在这种情况下是否有必要。
无论如何,标准Serializable是一个可怕的选择。它甚至在20K成员的查询期间显示。它需要在最内层的超类级别实现,以序列化其内容,您无法在其中添加。阅读本文以比较不同的序列化方法。 Comparing Hazelcast Serialization Methods