【问题标题】:axis2: serialization of wsdl2java generated objectsaxis2:wsdl2java生成对象的序列化
【发布时间】:2011-11-11 21:46:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java serialization axis2


    【解决方案1】:

    好的,我是这样解决的:

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

      ASerializable aSerializable; 一个; aSerializable= (ASerializable)in.readObject(); a.setID((String)aSerializable.getID().getValue());

    5. 对于预注释类序列化来说,它看起来仍然是额外的工作,但比在反序列化期间序列化为某些文本格式和手动类型检查要好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-05
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2016-07-05
      • 2011-04-12
      • 1970-01-01
      相关资源
      最近更新 更多