環境:
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 ('[email protected]','f','Robin');
十一、運行OnePassTester.java中的
@Test
testGetUserProfile1()
如果一切順利,將會看到可愛的green bar.
第二部分,會說明,如何增加我們自定義的module.