老大要求用web service实现一个增值服务,业务到很简单,于是顺着小研究了下,公司很守旧,只让用Axis,
而且还是1.4的,不过引擎也就只是一些配置的玩意。
用Eclipse wtp开发web service实在太方便了,打算加几个handler玩一下,无意看到一篇文章,关于handler
描述的很全面 使用Handler来增强Web服务的功能 ,看完之后才发现是别人2003年的文章,感叹一下,自己真落
后啊!
我参照这篇文章,共配了三个handler,创建的handler必须继承BasicHandler,其次必须在wsdd文件里配置,我这里是server-config.wsdd,从这两点来说跟servlet的filter很像。
这是第一个handler用来写日志滴。
在server-config.wsdd文件的配置如下
wsdd文件的根节点是deployment,其下节点globalConfiguration,handler,service等。
这个就放在globalConfiguration节点之后,service节点之前,和其他的handler同级关系。
紧接着在找到服务的service节点,比如我这里的web service服务叫ReceviceInfo。
然后在注释内容为"这里添加handler"的地方添加如下代码
这样配置就完成了。调用服务的方法前会先进入LogHandler来写日志内容。
其他两个配置相同,AuthenticationHandler我用来验证ip,用户名和密码,AuthorizationHandler用来验证该用户的
权限。
Axis还提供了两个Monitor来监听客户端和服务端的信息传送和返回情况,SOAPMonitor用来查看SOAP消息,
TCPMonitor用来查看http消息,想使用TCPMonitor工具很方面,在命令行窗口下输入
>cd %AXIS_HOME%/WEB-INF/lib/
>java -classpath axis.jar org.apache.axis.utils.tcpmon
就可看到界面。SOAPMonitor可以参看apache的文档 我弄了一个下午没成功,相当烦,最后就放弃了。