2014-07-25 53 views
0

運行的WSDL2Java後想我們得到了響應Manupulating使用WSDL響應

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "response", propOrder = { 
    "responseDate", 
    "institutionList" 
}) 
@XmlRootElement(name="response") 
public class Response implements Serializable { 

    @XmlElement(required = true) 
    @XmlSchemaType(name = "dateTime") 
    protected XMLGregorianCalendar responseDate; 
    @XmlElement(required = true) 
    protected List<InstitutionList> institutionList; 

    public XMLGregorianCalendar getResponseDate() { 
     return responseDate; 
    } 

    public void setResponseDate(XMLGregorianCalendar value) { 
     this.responseDate = value; 
    } 

    public List<InstitutionList> getInstitutionList() { 
     if (institutionList == null) { 
      institutionList = new ArrayList<InstitutionList>(); 
     } 
     return this.institutionList; 
    } 

} 

InstitutionList具有深層結構。由於一些進口我不能序列化我的Response(它需要GWT),所以我必須手動製作一些HashMap(可以序列化)並填充來自深層結構的所有字段。有沒有辦法做到這一點?此外,如果我想從數據庫中保存Response的數據,我不得不使用hashmap和所有值。謝謝你的幫助!

回答

0

我可以想到兩種不同的方式來做到這一點(他們都不是很舒服)。

GWT客戶端代碼 - (RPC) - >服務器代碼 - wsdl2java - > SOAP網絡服務 假設您沒有使用應用程序引擎,那麼沒有任何限制。 該方法以某種方式複製實體對象。例如,如果您有UpdateUser SOAP Web服務,則wsdl2java將生成一組類,並且您需要爲rpc代碼另外設置一組類。

GWT客戶端代碼 - 請求生成器+框架 - > SOAP Web服務 您可以在瀏覽器中創建必要的SOAP標頭,然後使用請求生成器發送請求。你將不得不編寫wsdl2java的修改版本來創建GWT兼容類。