我刚刚开始使用CXF 2.4来展示现有Web应用程序中的一些方法。其中一个方法返回一个复杂类型对象 - Employee,它有一个Address对象作为属性。
员工对象如下:
public class Employee implements Serializable {
private String gid;
private String name;
private Address employeeAddress;
//...getters and setters omitted
}
服务端接口中的方法签名如下所示:
Employee getEmployee(@WebParam(name="gid") String gid);
在客户端,我使用CXF WsdlToJava实用程序从服务器wsdl地址生成客户端存根,并且很高兴在我的客户端Web应用程序中使用Employee对象。
今天,一位同事向我指出,我不应该在客户端应用程序代码中使用webservice生成的对象。相反,我应该创建一个特定于我的客户端Web应用程序的Employee类,并将属性从Web服务Employee对象复制到我的应用程序Employee对象,以防止Web服务代码在整个代码库中结束。
对我而言,这似乎有些过分,实际上我将创建一个Employee类加上一个Address类,并在这些类型的对象和web服务的对象之间来回复制属性。
在我的应用程序中,我在JSP页面上显示了Employee对象的详细信息,但没有用它做太多其他事情。
总结我的问题 - 当在CXF中使用返回复杂类型对象的webservice调用时,是否应该始终使用单独的客户端应用程序特定对象来复制webservice生成对象的属性?是否有使用规则或取决于返回的对象的复杂程度以及客户端应用程序打算如何处理它们(例如,只显示它们,编辑它们并将它们返回,将它们存储在客户端应用程序数据库中。)
由于 达伦
答案 0 :(得分:2)
我在客户端使用webservice生成的对象时没有看到任何问题。 创建自己的类并来回移动属性只是一个时间杀戮过程。
当工具为您提供实现功能时,我们需要手动进行更改。如果有一个有效点,则需要弄明白。
所以我的安装是你可以使用webservice生成的Employee类来实现。