1.前期準備
http://axis.apache.org/axis2/java/core/download.cgi
下載下傳
Binary distribution axis2-1.7.1-bin.zip
WAR distribution axis2-1.7.1-war.zip
Service Archive plugin for Eclipse axis2-eclipse-service-plugin-1.7.1.zip
Code Generator plugin for Eclipse axis2-eclipse-codegen-plugin-1.7.1.zip
解壓
Service Archive plugin for Eclipse
Code Generator plugin for Eclipse
将jar包放入eclips的dropins檔案下
重新開機eclipse
2.編寫service代碼
package com.hetaoo.service;
public class CalculateService {
/**
* 加法運算
*
* @param x
* 被加數
* @param y
* 加數
* @return x與y的和
*/
public float plus(float x, float y) {
return x + y;
}
/**
* 減法運算
*
* @param x
* 被減數
* @param y
* 減數
* @return x與y之差
*/
public float minus(float x, float y) {
return x - y;
}
/**
* 乘法運算
*
* @param x
* 被乘數
* @param y
* 乘數
* @return x與y的乘積
*/
public float multiply(float x, float y) {
return x * y;
}
/**
* 除法運算
*
* @param x
* 被除數
* @param y
* 除數
* @return x與y的商
*/
public float divide(float x, float y) {
return x / y;
}
}
利用axis2 釋出webservice
選擇你sevice的class路徑
如果有相應jar包 就勾選相應jar包
勾選暴露的方法
解壓axis2-1.7.1-war.zip放入你的web容器中,因為項目指定要用Jboss 伺服器 ,是以我放入jboss-as-7.1.1.Final\standalone\deployments路徑下
運作Jboss伺服器
http://localhost:8080/axis2/axis2-web/index.jsp
選擇Administration
使用者名 admin 密碼 axis2
下面介紹下上面常用的功能
Upload Service當然是上傳aar的檔案,完成釋出WebService的工具了
Available Service是檢視目前釋出的Service詳細資訊
Available Service Groups是Service組
Global Chains是可以用的全局的Chain
Operation Specific Chains是某個具體操作的chain
Deactivate Service 是取消某個Service
Activate Service 是将取消釋出的Service再釋出出去
Edit Parameters是修改WebService類的參數
Upload Service 上傳剛才導出的aar檔案
Available Service是檢視目前釋出的Service詳細資訊 能看到自己的項目即釋出成功
點選自己的項目名檢視wsdl檔案
3.根據wsdl檔案生成java 用戶端代碼
4.也可以自己生成wsdl檔案
5.編寫用戶端測試代碼
package com.hetaoo.main;
import java.rmi.RemoteException;
import com.hetaoo.service.Minus;
import com.hetaoo.service.MinusResponse;
import com.hetaoo.service.Plus;
import com.hetaoo.service.PlusResponse;
import com.hetaoo.serviceCode.CalculateServiceStub;
public class TestWebService {
public static void main(String[] args) throws RemoteException {
String target = "http://localhost:8080/axis2/services/CalculateService";
CalculateServiceStub stub = new CalculateServiceStub(target);
Plus plus = new Plus();
plus.setX(5);
plus.setY(5);
Minus minus = new Minus();
minus.setX(5);
minus.setY(2);
MinusResponse ms = stub.minus(minus);
System.out.println(ms.get_return());
PlusResponse ps = stub.plus(plus);
System.out.println(ps.get_return());
}
}
成功!!