axis2:wsdl2java生成对象的序列化

时间:2011-11-09 07:37:52

标签: java serialization axis2

使用axis2的wsdl2java工具和第三方wsdl,我已经生成了服务存根和支持类(数据持有者)。由于需要对来自服务的加载数据进行后处理,因此需要序列化其中一个数据持有者对象。

1)是否有可用于此目的的标准axis2工具/方法?

2)由于数据持有者类没有实现Serializable接口,将对象序列化为xml格式的最简单方法是能否恢复原始对象?

使用了数据绑定选项(-d jaxbri),并且所讨论的类的每个字段都使用@XmlElement标记进行注释,例如:

@XmlElement(name = "ID", required = true)
protected String id;

1 个答案:

答案 0 :(得分:0)

好的,这就是我解决它的方法:

  1. axis2生成的java类集(客户端)有一个名为ObjectFactory的对象。它的大多数方法使用类持有者的字段值
  2. 创建JAXBElement对象
  3. 我必须为类持有者实现一个可序列化的包装类aSerializable,这样它就可以使用ObjectFactory为所有字段创建JAXBElement对象。
  4. 一些外部代码使用包装类创建可序列化对象并将其写入输出流。
  5. 在接收端:

    ASerializable aSerializable; 一个; aSerializable =(ASerializable)in.readObject(); a.setID((字符串)aSerializable.getID()的getValue());

  6. 它仍然看起来像预注释类序列化的额外工作,但比在反序列化期间序列化为某种文本格式和手动类型检查更好。