很久没有动手写WebService了,这次,借项目间隙,对系统进行一个小改造,将一部分功能使用WS进行封装,为下一步异构系统集成打下基础。
但在WS化时,由于日久生疏,一个小小的WS化变动,却花了整整好几天时间!为此,狠下以来,将其过程进行记录,以便下次参考。
WS整体流程:
以下分别介绍:
1、设计和实现WebService服务端功能组件,用于统一处理针对本应用系统所需进行WebService化的逻辑实现。并将系统逻辑处理中的对象转成序列化后的String对象,以符合WebService交互标准。
2、根据SBPApi.java,生成WSDL等:通过Eclipse右键菜单中的WebService-->Create Web Service项。完成后,会在web目录下建立wsdl目录和SBPApi.wsdl,在WEB-INF目录下建立(改写)server-config.wsdd等文件,并完成对web.xml的修改。其操作流程示如下:
3、根据SBPApi.wsdl,生成WebService客户端开发包和部署文件:
1)为不影响已有项目,可另建java Web项目;
2)将wsdl目录复制至新项目对应的web目录下;
3)通过eclipse已提供的webService插件(右键)功能,生成客户端开发包所各文件。此时,所生成的文件与服务端对象文件结构一至。
4)调整关联引用文件,将其调整至客户端开发包,从而避免与服务器端的引用路径重复而引发不便,并将服务器SDK中已有文件删除。
5)建立客户端的快速使用代理SBPClient.java,对WebService服务端交互工作的SBPApiSoapBindingStub.java进行客户端封装,并根据服务端中交互对象进行反向工程,其示例结构如下:
6)将clientApi下的所有文件打包后,加入测试项目进行测试。此时,因客户端所使用的服务端对象未包含在WebService客户端开发包中,因此需要将服务端对象也一同打包。
7)测试。
4、开发环境:Eclipse3.3.1.1 + JDK1.5.06 + Apache Axis version: 1.4