2011-11-09 40 views
0

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

1)是存在的,可用于该目的一个标准的axis2工具/方法呢?

2)由于数据holder类没有实现Serializable接口,这将是与恢复原来的对象的能力序列化对象到XML格式的最简单的方法?

使用

数据绑定选项(-d jaxbri)和有关类的每个领域都标注有@XmlElement标签,如:

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

回答

0

好吧,这里是我如何解决它:

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

    ASerializable aSerializable; A a; aSerializable =(ASerializable)in.readObject(); a.setID((String)aSerializable.getID()。getValue());

  5. 它仍然看起来像预注解类的序列化额外的工作,但比序列化为反序列化过程中的一些文本格式和手动类型检查好。