假设在运行wsdl2java之后我们得到了响应
@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 :(得分:0)
我可以想到两种不同的方式(没有一种方法非常舒服)。
GWT客户端代码 - (RPC) - &gt;服务器代码 - wsdl2java - &gt; SOAP Web服务 假设您没有使用应用引擎,那么没有任何限制。 此方法以某种方式复制实体对象。例如,如果您有一个UpdateUser SOAP Web服务,wsdl2java将生成一组类,并且您将需要另一组rpc代码类。
GWT客户端代码 - 请求构建器+框架 - &gt; SOAP Web服务 您可以在浏览器中创建必要的SOAP标头,然后使用Request Builder发送请求。您必须编写wsdl2java的修改版本才能创建GWT兼容类。