1. 程式人生 > >WebService使用axis2框架釋出服務與獲取服務

WebService使用axis2框架釋出服務與獲取服務

釋出服務

老版:使用jdk自帶的wsimport開啟@webservice註解
新版:使用axis2提供的外掛釋出服務

1.去apache官網下載Axis2,點選Projects
在這裡插入圖片描述
找到Axis2的產品,點選進去
在這裡插入圖片描述
在這裡插入圖片描述

選擇你所需要下載的進行下載,我這幾個全部下載了。
解壓其中的字尾名為war的,然後複製其中的axis2.war(apache官方寫好的管理髮布服務的專案)
在這裡插入圖片描述

在這裡插入圖片描述
2.然後啟動Tomcat服務(可以通過工作管理員和tomcat下的bin目錄下的Tomcat8.exe程式啟動)
啟動之後,去瀏覽器位址列輸入訪問它在這裡插入圖片描述

然後點選它的Services,可以看到此專案管理的服務類和方法,等下我們自己釋出的服務會出現在Services裡面。

前面兩篇部落格WebService都是使用jdk下面的wsimport.exe命令,釋出專案的,現在使用axis2提供的外掛釋出服務。

3.安裝axis提供的程式碼自動生成外掛和釋出服務的外掛
在這裡插入圖片描述
解壓在兩個資料夾,將裡面的的兩個jar包複製到eclipse的安裝目錄下的
在這裡插入圖片描述
檔案下
在這裡插入圖片描述
4.然後重啟eclipse,外掛安裝完成
我們利用這兩個外掛幫助我們自身釋出服務和使用第三方服務。
cctrl+n檢視外掛是否安裝成功
在這裡插入圖片描述
5.找到我們需要釋出服務的專案
和使用jdk的wsimport命令不一樣的是,服務類不用啟用@webservice註解
直接ctrl+n,點選它

在這裡插入圖片描述

選擇需要釋出的專案的存在路徑,bin資料夾下是已經編譯好的class檔案src下的是原始檔。

在這裡插入圖片描述
然後點選next,跳過wsdl檔案(因為服務還沒有釋出,所以不存在有它的wsdl檔案)
在這裡插入圖片描述
點選next
在這裡插入圖片描述
寫好服務的名稱和服務類的路徑
在這裡插入圖片描述

點選next

在這裡插入圖片描述
服務類生成服務成功!
在這裡插入圖片描述

6.去剛剛選擇輸出的檔案路徑檢視是否有該檔案

在這裡插入圖片描述

7.然後重啟tomcat
然後位址列重新訪問http://localhost:8080/axis2/專案
會發現和起始的專案有些不同,多出服務類的東西
在這裡插入圖片描述
會發現和使用jdk自帶的wsimport生成的wsdl檔案,一摸一樣
在這裡插入圖片描述
我們重新捋一下順序:
將axis2提供的管理服務的專案複製到tomcat的webapps—>然後裝外掛----->將需要釋出的服務的專案提交到外掛中---->由外掛生成服務類的wsdl的程式碼

呼叫服務

1.新建一個Java專案
選中ctrl+n
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
點next
在這裡插入圖片描述
在這裡插入圖片描述
2.第三方服務類生成成功,重新整理WebService_client專案。
發現專案報錯,是因為關於Axis2的jar包沒有拷到專案中來
然後在專案新建一個lib資料夾,把這個目錄下的Jar包考進去,並且匯入到專案中去
在這裡插入圖片描述
小貼士:按住shift從起始位置到最後一個jar包,複製
在這裡插入圖片描述
然後專案就不報錯了

3.測試獲取服務端資料
新建一個TestWsdl.java

package com.server.webservice;

import org.apache.axis2.AxisFault;

/**
 * 
* @ClassName: TestWsdl
* @Description:測試獲取服務資料的類
* @author 小思
* @date 2018年10月17日 下午10:13:21
*
 */
public class TestWsdl {
	public static void main(String[] args){
		//服務類的實現類
		try {
			IDCARDServiceStub idcardServiceStub=new IDCARDServiceStub();
		    Test test=new Test();
		    test.setName("嚴");
		    //方法的執行之後的響應
			TestResponse test2 = idcardServiceStub.test(test);
			//獲取返回的資料
			String get_return = test2.get_return();
			System.out.println(get_return);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

說在最後的話:編寫實屬不易,若喜歡或者對你有幫助記得點贊+關注或者收藏哦~