2011-11-09 76 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. 它仍然看起來像預註解類的序列化額外的工作,但比序列化爲反序列化過程中的一些文本格式和手動類型檢查好。