A. 環境準備
a. Eclipse3.2.2
b. MyEclipse5.5m2
c. Axis2.1.1 War包 http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war
d. Axis Eclipse plug-in(代碼生成工具和打包工具):
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-codegen-wizard.zip
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-service-archiver-wizard.zip
B. 開發步驟
a. 創建一個web項目,名稱爲hello
b. 生成wsdl文件
打開MyEclipse的web service中的wsdl嚮導
文件名爲hello.wdsl,下一步
目標地址爲http://www.oksonic.cn/hello/,其它爲默認,完成
修改hello.wsdl文件爲以下格式
C. 根據wsdl文件生成客戶端java代碼
使用Ctrl + N 打開Axis Wizards中的Axis2 Code Generator
使用默認的第一項,下一步
選擇生成的hello.wsdl文件D:/oksonic/workspace/hello/src/hello.wsdl,下一步
參照下圖進行配置
解壓Axis2.1.1文件到C盤,然後參照下圖進行配置
將加入進來的lib目錄移到WEB-INF目錄下,刷新一下項目就可以看到生成的代碼了。
D. 根據wsdl文件生成服務端java代碼
使用Ctrl + N 打開Axis Wizards中的Axis2 Code Generator
使用默認的第一項,下一步
選擇生成的hello.wsdl文件D:/oksonic/workspace/hello/src/hello.wsdl,下一步
參照下圖進行配置
下一步
E. 修改HelloSkeleton代碼,內容如下:
package org.example.www.hello;
public class HelloSkeleton {
public org.example.www.hello.HelloResponse hello( org.example.www.hello.Hello param0) { try { HelloResponse response = new HelloResponse(); response.setOut(param0.getIn() + "歡迎你的到來!"); return response; } catch (UnsupportedOperationException e) { throw e; } } } |
F. 發佈項目
1. 打開Axis2的嚮導,選擇Axis2 Service Archiver
2. 選擇class文件所在的目錄,如:D:/oksonic/workspace/hello/WebRoot/WEB-INF/classes
3. 選擇項目中resources目錄下的hello.wsdl文件如:D:/oksonic/workspace/hello/resources/hello.wsdl
4. 跳過一下步,這裏選擇resources目錄下的service.xml文件如:D:/oksonic/workspace/hello/resources/services.xml
5. 這一步是輸出一個jar文件或是aar都可以,上面是輸出路徑,下面是文件名,如:C:/Documents and Settings/Administrator/桌面,Hello.jar
6. 將axis2.1.1.war文件拷貝到tomcat安裝路徑下的webapps目錄下,這裏可以選擇啓動tomcat來解開axis2.1.1.war,也可以直接將文件改名爲zip後解壓,解壓後的文件夾名稱爲axis2,然後將Hello.jar拷貝到asix2.1.1/WEB-INF/service目錄下
G. 測試
啓動tomcat服務,打開IE在地址欄中輸入http://localhost/axis2,進入頁面後點擊Services鏈接,在下一個頁面中將會看到hello服務的鏈接,點開此鏈接就可以看到服務信息了。
接下來使用客戶端測試代碼進行測試,修改HelloTest.java文件中的testHello方法,內容如下:
public void testHello() throws java.lang.Exception { String url = "http://localhost/axis2/services/Hello"; HelloStub stub = new HelloStub(url); Hello hello = (Hello) getTestObject(Hello.class); hello.setIn("oksonic"); System.out.println(stub.Hello(hello).getOut()); assertNotNull(stub.Hello(hello)); } |
這裏使用到了Junit,所以還需要將Junit的jar包加到項目中
爲了製作更多更好的錄像教程,希望大家多多提供相關資料!!!