【WebService】快速建立webservice例項
阿新 • • 發佈:2019-02-11
快速建立webservice例項步驟:
1、建立IMyService介面類:
@WebService()
public interface IMyService {
/**
* 加法
* @param a
* @param b
* @return
*/
@WebResult(name="addResult")
public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);
/**
* 減法
* @param a
* @param b
* @return
*/
@WebResult(name="minusResult")
public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b);
}
2、建實現類IMyServiceImpl:
@WebService(endpointInterface="org.zttc.service.IMyService")
public class MyServiceImpl implements IMyService {
/**
* 加法
* @param a
* @param b
* @return
*/
@Override
public int add(int a, int b) {
System.out.println(a+"+"+b+"="+(a+b));
return a+b;
}
/**
* 減法
* @param a
* @param b
* @return
*/
@Override
public int minus(int a, int b) {
System.out.println(a+"-" +b+"="+(a-b));
return a-b;
}
}
3、MyServer類:測試是否部署成功
/**
* server端
* @author 王紅偉
*
*/
public class MyServer {
public static void main(String[] args) {
String address = "http://localhost:8888/ns";
//釋出地址
Endpoint.publish(address, new MyServiceImpl());
}
}
4、寫TestClient測試類:部署成功後,我們就可以呼叫了
public class TestClient {
public static void main(String[] args) {
try {
//建立訪問wsdl服務地址的url
URL url = new URL("http://localhost:8888/ns?wsdl");
//通過Qname指明服務的具體資訊
//MyServiceImplService對應wsdl頁的本地提供的webservice的名稱
QName sname = new QName("http://service.zttc.org/", "MyServiceImplService");
//建立服務
Service service = Service.create(url,sname);
//實現介面
IMyService ms = service.getPort(IMyService.class);
System.out.println(ms.add(12,33));
//以上服務有問題,依然依賴於IMyServie介面
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
執行TestClient,最終結果為45
直接將wsdl轉為java物件,但是存在問題,
//實現介面
IMyService ms = service.getPort(IMyService.class);
這句程式碼依賴外部介面,wsdl可能是.net開發的,可能是其他語言開發的,依賴介面不能跨平臺。所以引出了wsimport的使用。
關於webservice的例項就到這裡,下篇部落格將為您展示wsimport的使用,歡迎您的訪問。