浏览 2409 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (13) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-03
public class User { private int id; private String name; ... } 定义查询接口的时候有我想到两个方案: public User[] getUsers(String userName, String pwd, int groupId); // 这样的定义客户端调用的时候只有两种结果,一是得到要查询的数据,一是 // 得到空数组,然后缺点就是得不到错误提示,是密码不对还是group不存在 // 还是其它原因。。。 public String getUsers(String userName, String pwd, int groupId); // 这样定义的话客户端可以得到错误提示 // 但缺点是得不到对象,需要自己解析字符串再封装成对象 后来在论坛提问得到第三个方案: 再写一个类 public class UserResponse { private String msg; private User[] users; ... } 这样接口可以定义为: public UserResponse getUsers(String userName, String pwd, int groupId); //然后在server-config.wsdd里加入<beanMapping> //这样客户端能得到错误提示和User[]了 正准备开干又发现一个缺点,除了User还有很多类 每个类都写一个XXXResponse来封装又很麻烦 于是向高手讨教,得到又一个方案: 接口定义为 public Object[] getUsers(String userName, String pwd, int groupId); //在实现这个方法时,将message放入object[0], User[] 放入object[1] //这样就不用写那么多类了 //不过客户端又要多做一点事情,就是将object[1]强制转换成相应的类型 我发现客户端并没有生成User对象,axis2应该是根据接口来生成的wsdl文件 于是我加入一个接口 public void doNothing(User user, XXX xxx ....); // 这样客户端就能生成User类了 还有人说可以抛出自定义异常来返回错误提示,这样也可以吧 欢迎大家来讨论,你们都是怎么做的呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-03
public User[] getUsers(String userName, String pwd, int groupId)throws XXXException
自定义异常 |
|
返回顶楼 | |