环境:
Eclipse3.5
Axis2 1.5.4
Hibernate3.0
Mysql5.0
Tomcat6.0
一、创建dynamic web工程
工程名eg:mywebservice.
解压axis2.war,将所有的文件copy到/WebContent下,并引入hibernate 以及Mysql等相关必须的包。
二、创建service request 和response bean
UserProfileRequest.java
RequestHeader.java
UserProfileResponse.java
ResponseHeader.java
三、创建service
OnepassServices.java
四、生成wsdl
进入build/class 目录下,运行如下命令:
java2wsdl -cn com.axis2.service.OnepassServices -o ../../resource -of OnepassServices.wsdl -tn http://axis2.com/ws/service -stn com.axis2/ws -dlb doc/lit
在工程目录下/resource就会生成
--META-INf
---services.xml
--OnepassServices.wsdl
注意:打开OnepassServices.wsdl需要修改部分的代码<xs:element />,比如args[0]等。贴出部分代码:
五、根据wsdl生成skeleton
进入工程目录下,运行如下命令:
wsdl2java -uri resource/OnepassServices.wsdl -ss -sd -d adb -S ./src -R ./resource/META-INF -p com.axis2.ws.skeleton -ns2p http://bean.axis2.com/xsd=com.axis2.ws.bean.xsd,com.axis2/ws=com.axis2.ws.bean --noBuildXML -noWSDL -uw
刷新工程,就会看到有类似如下代码生成:
---src
---com.axis2.ws.bean
---com.axis2.ws.bean.xsd
---com.axis2.ws.skeleton
--- OnepassServicesSkeleton.java
OnepassServicesSkeleton.java这里就是我们要写入业务逻辑的地方。
六、生成客户端测试代码
进入工程目录下,运行如下命令:
wsdl2java -uri resource/OnepassServices.wsdl -d adb -S src -p junit.com.axis2.ws.stub -noBuildXML
---junit.com.axis2.ws.stub
---OnepassServicesCallbackHandler.java
---OnepassServicesStub.java
七、创建测试代码(Junit Test)
---OnePassTester.java
至此代码完成。下面说下部署,以Tomcat为例,其他server会有不同,比如weblogic相对复杂点,后面会有简单介绍。
八、将build/classes 下的skeleton copy到WebContent/WEB-INF/services下,如下结构:
---onewpassservice
---com
---...
---META-INF
---services.xml
九、部署到Tomcat下,并启动服务
十、初始化数据库
运行dbscripts/init.data.sql
insert into WS_USER(email_address,gender,user_name) values ('test@163.com','f','Robin');
十一、运行OnePassTester.java中的
@Test
testGetUserProfile1()
如果一切顺利,将会看到可爱的green bar.
第二部分,会说明,如何增加我们自定义的module.