`
hkliya
  • 浏览: 83896 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebService接口设计遇到的问题及解决过程

阅读更多
服务端有这样一个类:

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类了


还有人说可以抛出自定义异常来返回错误提示,这样也可以吧

欢迎大家来讨论,你们都是怎么做的呢?
分享到:
评论
1 楼 vvggsky 2009-07-03  
public User[] getUsers(String userName, String pwd, int groupId)throws XXXException

自定义异常

相关推荐

    C#使用Http Post方式传递Json数据字符串调用Web Service

    在学习使用的过程,遇到了很多问题,也花了很长时间来解决,网上相关的帖子很少,如果各位在使用的过程中有一些问题难以解决,可以找我哦。  前提  使用Post方式调用Web Service,需要在服务项目配置文件W

    分享影像管理平台解决方案

    【大多企业遇到的问题】 1、贵公司 非结构化数据是否得到了统一的管理? 2、贵公司 是否还在使用客户端方式影像的采集? 3、贵公司 是否实现以影像为核心的流程化管理? 【我们将带给客户】 1、我们基于在金融...

    asp.net知识库

    泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 ...

    log4Net详解(共2讲)

    对于请求的不同状况,例如新的请求到达、待处理请求、超时未处理请求、员工工单发放提配、员工工单按时提交提醒、请求递交被处理状况等,系统都设定了多种提醒功能(短信...-调用飞信WebService接口、QQ通知...

    宏天影像采集系统演示 Ver3.16.123(2013-08)

    【大多企业遇到的问题】 1、贵公司 非结构化数据是否得到了统一的管理? 2、贵公司 是否还在使用客户端方式影像的采集? 3、贵公司 是否实现以影像为核心的流程化管理? 【我们将带给客户】 1、我们基于在金融...

    java学习重点

    JAVA学习要点 一、关于Java ...多态性就是“一种接口,多种方法”,可以为一组相关的动作设计一个通用的接口,其实类的函数的重载就是一种多态的体现; 4 引入抽象编程的思想; 类的封装就是一种抽象思想

    Java面试宝典2010版

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 4、编程用JAVA解析XML的方式. 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 七. 流行的框架与新技术 1、谈谈你对Struts的理解...

    最新Java面试宝典pdf版

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    ASP EXCEL导入SQL

     分布式的存储系统有效地解决了海量数据的存储、检索、分析以及统计等问题。  可见,当传统的CRM系统转换为SaaS服务后,其架构方面还是发生了不少的变动的,也只有这样的变动,才使得CRM能够在SaaS平台上更好的为...

    Java面试笔试资料大全

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    JAVA面试宝典2010

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    Java面试宝典-经典

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    java面试题大全(2012版)

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    Java面试宝典2012版

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、...

    java面试宝典2012

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 124 4、编程用JAVA解析XML的方式. 125 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 127 七. 流行的框架与新技术 128 1、谈谈你...

    Java面试宝典2012新版

    3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 117 七. 流行的框架与新技术 117 1、谈谈你...

    net学习笔记及其他代码应用

    声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其...

Global site tag (gtag.js) - Google Analytics