- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Xfire的Webervice远程调用
基于XFIRE的Web Service远程调用 sccl产品五部 blue
总体框架
如果服务端(WEB SERVICE的服务提供方)和客户端(WEB SERVICE的服务调用方)都是我们可以控制的JAVA系统,那么可以按照以上思路设计,方便开发和调用。主要分成以下几部分:
公用端
公用端就是上图中的接口API和数据API,主要负责统一服务端和客户端要传递的DTO数据和统一JAVA调用接口。
服务端
服务端直接在业务层上包装,不用重复开发。
客户端
客户端通过统一的接口API和数据API和服务端交互。
XFIRE的公用端
公用端主要包含以下几部分内容:
接口API:JAVA的interface,这部分内容可以在开发初就商定,服务端按照该接口开发,客户端按照该接口来调用。这个接口可以是我们业务层接口的一个子集,当然我们可以轻松的将我们SPRING上配置的业务方法提供成为WEB SERVICE接口,但是有些危险接口(比如:删除用户,删除用户历史记录等业务操作接口),我们不希望将他们提供成为WEB SERVICE接口。所以我们用这个接口API做了一个转换和包装。只有在这个接口包中定义的API,我们才提供出来成为WEB SERVICE。
数据API:所谓数据API就是WEB SERVICE在传递过程中要传递的JAVA序列化对象,平时常说的DTO。它和平时的数据库POJO的不同时,有时你传递一个USER对象,其实并不是所有USER的成员属性都是调用方想获取的,或者说出于安全性保密考虑,并不是所有的USER成员属性都是你想提供的给别人调用的。所以在接口上传递的不是POJO,而是转化过来的DTO。
在例子中的代码easyremoteapi项目,就是用来生成这个API模块的,项目最早就要产出这个jar包,提供给服务端和客户端共同使用,这样即不会影响两边的开发进度,也统一了接口和参数。
接口API代码erfaces.UserService
定义了如下示例接口
public interface UserService {
public ListIUser getAll();
public IUser get(Integer id);
public void remove(Integer id);
}
请注意在定义WEB SERVICE接口时候,List请指明里面的对象类型,使用JDK1.5的特性。
数据API代码com.sillycat.core.webservice.model.IUser
定义了如下示例成员变量
public class IUser implements Serializable {
private static final long serialVersionUID = 1993559722178981779L;
private Integer id;
private String name;
private String email;
…
省略了后面的getter和setter方法。
需要注意DTO需要继承自Serializable接口,为了区别自己系统中的POJO的User对象,所以这里用了IUser,表名interface user的意思。
XFIRE的服务端
服务端,由于我们使用了spring和xfire集成来实现WEB SERVICE,所以很简单。只需要引入正确的JAR包,同时导入我们先前定义的公用端的JAR包。
在示例项目easyserver中,我们用到的XFIRE,需要导入的JAR包是
dependency
groupIdorg.codehaus.xfire/groupId
artifactIdxfire-all/artifactId
version1.2.6/version
/dependency
dependency
groupIdxalan/groupId
artifactIdxalan/artifactId
version2.7.1/version
/dependency
在配置文件中引入XFIRE的基本配置
import resource=classpath:org/codehaus/xfire/spring/xfire.xml /
bean id=baseWebService class=org.codehaus.xfire.spring.remoting.XFireExporter
lazy-init=false abstract=true
property name=serviceFactory ref=xfire.serviceFa
文档评论(0)