axis2 webService開發(打包aar檔案 )
安裝好axis容器、eclipse axis2外掛後就可以用打包aar檔案方式釋出web service服務了
服務端:
我們的服務很簡單的,就是輸入一個字串,然後打印出一段字串。
程式碼很簡單,主要是測試用(思想是一樣的)。
Java程式碼- package com.deltaj.server;
- publicclass SimpleServer {
- /**
- * 簡單的測試方法
- *
- */
- public String simpleMethod(String name) {
- return name + "Say this is a Simple method ^-^";
- }
- }
主要的過程就是如何利用axis2的eclispe外掛來發布這個服務啦。
1。在eclispe 的package Explorer 中點選右鍵,在選單中選擇新建--->other...----->Axis2 Service Archiver
2.然後點選next進入了類選擇頁面,在這個頁面中的Class File Location選擇框中選擇類所在的資料夾。
3.點選next之後進入了選擇 wsdl檔案,這裡我們選擇skip wsdl。
4. 點選next之後,進入的是選擇jar檔案的頁面,這裡我們沒有外部的jar,所以點選next直接跳過這個頁面。
4.點選next之後,進入的是選擇xml頁面,這裡我們選擇的是自動生成xml,也就是勾選
Generate the service xml automatically這一項
5.點選next之後,進入的是生成xml檔案的頁面,在service name 裡填寫這個服務所起的名字,這裡我起名為simpleServer,然後在class name 中填寫要釋出的類,這裡一定要寫全路徑,寫好後就可以點選load 按鈕,
如果一切ok的話,你會看到如下畫面
6 點選next 後,進入的是輸出artiver檔案的頁面,先要在output File location 中選擇要輸出的路徑,
在output File Name中輸入artiver檔案的名稱。我起的名字是simpleServer(這一步中有的會出現不釋出不成功,主要是版本問題,只要把Eclipse axis2外掛換成最新的就可以了;我用過1.4.1的就會報錯,建議是用更高的版本)
7.點選finish ,如果看到如下的畫面,恭喜你,服務釋出成功啦。
8.接下來,我們就可以把這個aar檔案放入tomcat中釋出,首先把生成的aar檔案拷貝到tomcat目錄中的axis2專案的service目錄中位置如圖。
10.點選Service連線,你會看到釋出的服務列表。這裡面就能看到我們釋出的simpleService
11.點選我們的服務simpleServer的連線,我們會看到。至此,服務釋出成功。
客服端:
這節我們就來寫一個客戶端來呼叫一下這個服務。主要關注一下如何用elispe的axis2的外掛來生成stub程式碼。
1.在eclispe 的package Explorer 中點選右鍵,在選單中選擇新建--->other...----->Axis2 Code Generator
2.點選next,進入下一個頁面,選擇從wsdl檔案來產生java檔案。
3. 點選next,然後選擇wsdl檔案,注意此處要填寫上一節我們
4.點選next,進入設定頁面,這裡我們就用預設的設定。
5. 點選next,選擇輸出檔案的路徑。
6.點選next,如果看到這個頁面,恭喜你已經生成程式碼成功。
7.在package Explorer中重新整理一下專案,然後你發現出現2個新的檔案SimpleServerStub和SimpleServerCallbackHandler 。開啟SimpleServerStub你會驚喜的發現。著名的小紅叉一個接一個的
這是因為沒有axis2的類包。我們可以在下載的axis2-1.4.1-bin中找到lib包,把其中的jar都加入我們的工程中。
然後重新編譯一下工程,這時我們發現SimpleServerStub還是有幾個小紅叉。這個是因為這個外掛有個小bug。
生成的程式碼沒有實現序列化方法。我們可以自己來加上,在小紅叉上點一下,彈出一個小選單,選擇
Add unimplemented methods .
8.
Java程式碼- /**
- * 呼叫釋出的服務。
- *
- */
- publicclass SimpleClient {
- publicstaticvoid main(String[] args) throws Exception{
- //初始化樁檔案
- SimpleServerStub stub = new SimpleServerStub();
- //初始化SimpleMethod方法。
- SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod();
- //呼叫simpleMethod的setName方法。
- request.setName("zt");
- //
- System.out.println(stub.simpleMethod(request).get_return());
- }
- }
/**
* 呼叫釋出的服務。
*
*/
public class SimpleClient {
public static void main(String[] args) throws Exception{
//初始化樁檔案
SimpleServerStub stub = new SimpleServerStub();
//初始化SimpleMethod方法。
SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod();
//呼叫simpleMethod的setName方法。
request.setName("zt");
//
System.out.println(stub.simpleMethod(request).get_return());
}
}
如果一切正常,你就會看到結果
log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService).
log4j:WARN Please initialize the log4j system properly.
ztSay this is a Simple method ^-^。
呼叫服務成功。這是個簡單的例子
相關文章: