`
hkliya
  • 浏览: 85735 次
  • 性别: 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

自定义异常

相关推荐

    Storm-webservice接口调试工具

    【Storm Webservice接口调试工具】是一款专为Web服务接口调试设计的应用程序,它以其简约...无论是在项目的初期接口设计,还是后期的维护阶段,都能够发挥重要作用,帮助开发者快速定位和解决问题,推动项目顺利进行。

    触发短信WebService 接口说明

    在本场景中,这个WebService接口被设计用于触发短信的发送,即当用户需要验证时,应用程序会调用这个接口,发送短信验证码到用户的手机上。 开发说明及常见问题.doc文件中可能包含以下内容:开发环境的配置、接口...

    labview调用webservice访问远程数据1

    WebService 是一种优秀的解决方案,它可以提供一种安全、可靠的方式来访问远程数据。我们可以使用 WebService 来访问远程数据库,而不需要考虑网络限制。 LabVIEW 是一个功能强大的开发平台,它可以轻松地集成 ...

    使用WebService上传一个附件或者多个附件的实现方式

    3. **处理大附件**:大附件的上传可能会遇到内存限制和传输效率问题。一种常见解决方案是使用流式处理(Streaming),不将整个文件加载到内存中,而是分块读取并上传。另外,可以使用断点续传技术,如果上传过程中...

    Microsoft SOA WebService設計模式

    **Loosey Goosey**:此反模式指的是服务接口设计过于松散,直接暴露底层数据库查询或执行命令,这降低了接口的灵活性和可扩展性。正确做法是将服务分解为更具体、更有业务含义的功能,避免直接暴露数据库操作。 ...

    短信验证码Webservice调用

    这些资源可以帮助开发者了解具体的实现细节,包括如何构造请求,如何处理响应,以及可能遇到的问题和解决方案。 总之,短信验证码Webservice调用是提升用户体验和系统安全的重要手段。通过合理的API设计和安全实践...

    一头扎进 WebService 视频教程 java1234出品

    学习如何解决在开发和使用WebService过程中可能遇到的问题,以及如何优化服务性能,提高响应速度和稳定性。 本视频教程适合有一定Java基础,希望进一步了解和应用WebService的开发者。通过深入学习,您将能够熟练...

    基于WebService的C/S框架

    客户端通过调用WebService接口与服务器进行通信。开发者可以使用各种编程语言(如Java、C#)和库(如.NET的ASMX或WCF)来创建客户端代理类,这些代理类可以透明地处理SOAP消息的发送和接收。 2. 服务器端开发:...

    什么是WebService

    另外,WS-*(如WS-Security、WS-ReliableMessaging等)是一系列扩展标准,旨在解决WebService的安全、可靠性和事务处理等问题。 总结,WebService是实现跨平台、分布式计算的关键技术,它通过WSDL、SOAP和UDDI等...

    BOS V6.2开发指南_WebService

    异常查看是调试WebService过程中不可或缺的一环,有助于开发者快速定位和解决问题。 此外,文档中还提到了WebService客户端开发指南,包括前提条件、获取WSDL文件、生成Java和C#客户端等步骤。这部分内容指导开发者...

    webservice调试工具

    `WebServiceStudio20工具`是一款轻量级的Web服务客户端工具,专门设计用于调试SOAP接口。以下是使用该工具的一些关键功能和步骤: 1. **启动工具**:下载并安装`WebServiceStudio20工具`,运行后,界面通常会提供一...

    webservice

    - **WSDL(Web Services Description Language)**:这是一种用于描述WebService接口的XML格式语言。WSDL文档包含了服务的抽象定义以及具体绑定到传输协议和消息格式的信息,使得客户端能够理解并正确调用服务。 -...

    PowerBuilder125开发Webservice的DEMO-从配置IIS到发布接口

    此外,DEMO中还提供了详细文档,帮助用户理解每个步骤,解决可能遇到的问题。文档可能包含了配置截图、代码示例和调试技巧等内容,对于初学者来说非常宝贵。 总之,通过这个DEMO,你将学习到如何利用PowerBuilder ...

    webService项目问题

    【描述】:虽然描述为空,但我们可以推测博主在iteye博客上发布的内容可能涵盖了他们在处理Web Service项目时遇到的具体问题、解决过程或者分享了一些相关的技术要点。由于没有具体细节,我们只能根据一般情况来分析...

    Winform调用webservice写的一个小工具

    在"几个可能遇到的问题.txt"文件中,可能列出了在开发和使用过程中遇到的一些常见问题及解决方案,比如网络连接问题、数据解析错误、权限不足等。这些问题的解决有助于优化程序的稳定性和用户体验。 总的来说,这个...

    android调用webservice火车票查询

    综上所述,Android调用WebService实现火车票查询功能涉及到多个层面的知识,包括网络通信、数据解析、异步处理、权限管理、UI更新、错误处理、本地存储、设计模式以及API接口的调用与安全。熟练掌握这些技术,可以...

    基于SVG和WebService的WebGIS系统设计

    虽然目前该方案还存在一些挑战,如数据安全、多比例尺空间数据表达等问题,但随着技术的不断进步和完善,这些问题都将得到解决。未来,基于SVG和WebService的WebGIS系统将在地理信息服务领域发挥越来越重要的作用。

    webservice测试工具

    这个小得多的工具设计目的是为了简化测试过程,提供一个轻量级的解决方案,使前线测试工作更加便捷。它可能包含基本的SOAP请求构建、发送和响应解析功能,同时具备快速启动和低资源占用的优势。 使用这种简单的...

    WebService航班查询

    【WebService航班查询】是针对移动应用开发者,尤其是Android开发者的一项技术实践,主要目的是通过调用WebService接口来获取并展示航班信息。在这个过程中,开发者需要掌握Web服务的基本原理、Android网络编程以及...

    EASWebService二次开发及发布.docx

    - 如果在发布过程中遇到错误,例如文件配置问题,需要根据错误提示进行修正。修改完`server-config.wsdd`后,需要重启EAS服务以使更改生效。 在实际开发中,可能还会涉及其他细节,比如服务的安全性设置、性能优化...

Global site tag (gtag.js) - Google Analytics