用XFire做的带验证(Handler方式)的Webservice!!!(完整版)

本文介绍如何使用XFIRE框架搭建带有用户验证功能的WebService服务。服务端通过配置实现用户验证,客户端则通过特定方式构造认证信息进行调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XFire是一个Webservice的框架。搞XFire两天了,前面也写了几篇文章,这里再写一个生产中的比较规范的demo,意图使人直接看到这篇文章也能实验成功。提供webservice接口给别人调用一般是给一个wsdl文件,这样别人就可以根据这个文件自动生成工具类进行调用。本文章带验证功能,生产中的webservice接口也不是知道地址就能调用的,最起码的一个账户、密码验证还是要的。废话不多说了!

 

简单分析下将要实现的功能,以便后面容易理解。调接口会拿到一个list,里面装的是自定义的类,前提是要先通过用户名和密码的验证才能拿到list结果,否则会提示身份验证失败!!!后面看到将会有两个项目,服务端:webservice 客户端:webserviceclient 。服务端和客户端都要加入xfire的jar包(xfire下的xfire-all-1.2.6.jar和xfire/lib下的*.jar,最好是复制到项目的lib下面,否则可能会出现一些不可预料的错误。),其中服务端要在web.xml中配置一下:

就这样开发环境算是搭好了,其中客户端大部分是利用ant根据wsdl自动生成的,这也是为什么webservice接口一般要求提供一个wsdl的原因了吧。还要说下项目的结构:

webservice:

WebserviceConstant类 抽取的项目中一般喜欢写死的常量,这样更灵活。(一改全改,统一维护)

Webservicehandler类 返回list集合的webservice接口实现类

WebserviceInfo类 JavaBean,list集合中装的就是这个自定义对象。

 WebserviceInterface类 webservice接口

WebserviceIpParameter类 读取配置文件的类,不是用户名和密码要通过验证嘛,服务端就是把的配置起来的,采用单例。

WebserviceServerHandler 服务端验证类,在里面验证用户名和密码

config.properties 放在src下面的。配置的是用户名和密码

src/META-INF/xfire/services.xml webservice的配置类。

WebserviceInterface.aegis.xml aegis绑定配置文件 

 

webserviceclient:

WebServiceTest.java 自己写的测试类

 WebserviceClientHandler.java 客户端调用接口需要传递验证信息,这个类就是构造验证信息的。

webserviceclient/build.xml 在项目下面的,根据wsdl自动生成一些代码到客户端

 

开发环境:xfire-distribution-1.2.6.zip、jdk1.6、eclipse3.2、tomcat6.0

需要说的基本都交代清楚了吧,没有说清楚的后面想到再说,我不是写书的,也就是想到哪说哪。草草的总结一个而已。下面上代码:

 

服务端代码,都是在webservice项目下面的 WebserviceInterface

 

WebserviceInterface.aegis.xml

 

Webservicehandler

 

 WebserviceInfo

 

WebserviceIpParameter

 

config.properties

 

WebserviceConstant

 

WebserviceServerHandler

 

services.xml

 

接下来是客户端代码,webserviceclient下的

WebserviceClientHandler

 

WebServiceTest

 

build.xml

 

WebServiceTest中的代码有很多类是没有介绍到的,一部分是jar里面带的,一部分是ant生成的。

build.xml 中的http://127.0.0.1:8080/webservice/WebService?wsdl是常量。

${basedir}/WebContent/WEB-INF/lib 是xfire的jar路径

客户端的WebserviceClientHandler类代码中用到了服务端的那个常量类,注意要在客户端引入。

还要说下原理,客户端和服务端分别都有个handler类(handler就类似与拦截器那种东东),服务端是验证身份,客户端是构造验证身份传给服务端。服务端验证通过了才调接口,否则抛出异常。

下面贴出的是虚拟的、其中服务端查找、客户端构造的虚拟的xml。在实际项目中是不存在的,再说一次虚拟的。贴出来是方面发家理解代码

 

最后在贴出两个项目的截图:

webserviceclient/src/com.zte和mca和test都是生成的

webserviceclient中只手写了2个类一个xml(WebServiceTest.java WebserviceClientHandler.javabuild.xml)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值