webservice入門(2)開發ws程式,webservicews
因為webservice分為服務端和用戶端,所以如果要學習的話,那麼肯定是包括這兩部分的了。
1.開發服務端的webservice:
使用jdk開發ws其實很簡單,只是需要一些註解:最重要的是
@WebService,@WebMethod
這兩個註解,分類在類和方法上面註解。註明這是一個ws介面,然後在實現就可以了,下面是例子:
/** * SEI 介面 * @author Hotusm * */@WebServicepublic interface HelloWs { @WebMethod public String sayHello(String name);}
我們聲明了一個介面,然後在類上和方法上面都使用註解標記,然後我們在實現這個介面:
@WebServicepublic class HelloWsImpl implements HelloWs{ @Override public String sayHello(String name) { System.out.println("SEI IMPL"); return "hello "+name; }}
這樣一個ws的helloword就寫好了,下面就剩下怎麼發布ws了,我們要使用到jdk提供給我們方法了:
Endpoint publish = Endpoint.publish("http://127.0.0.1:9999/WebService/hellows", new HelloWsImpl());//這裡我們使用的是實現的那個方法。
注意,如果是java app的話,建議不要使用127.0.0.1而應該擷取到原生真是連接埠號碼,這樣別人就能夠調用你的ws了。還有就是這個連接埠不能夠被佔用了。不然是會報錯的:,,最後發布完以後,我們可以通過流浪器開啟地址http://127.0.0.1:9999/WebService/hellows?wsdl,如果看到xml檔案,那麼就證明發布成功啦。
2.開發用戶端的ws
開發用戶端代碼會分為兩部分:
1.擷取wsdl檔案,這個擷取除了網上的那個地址,也有可能是第三方發給你的一個wsdl檔案
2.使用jdk提供的工具產生用戶端主體代碼。
下面來樣本一下:
1.第一步一般只是準備工作,沒什麼好講的只是講一下怎麼產生用戶端代碼。我們使用到了java的一個工具,在jdk的bin目錄裡面有一個,我們可以使用這個工具來協助我們產生代碼。
①。使用cmd,切換到存放產生代碼的地方(這裡需要注意下,產生的包名和伺服器中的包名是一致的,所以別放在伺服器的src下面,不然就覆蓋了)。:
D:\ww>wsimport -keep http://127.12.0.1:9999/WebService/hellows?wsdl
這樣,在d盤的ww檔案夾下面就產生了這樣的一個結構的包和一些類。下面怎麼使用這些東西呢?
HelloWsImplService factory=new HelloWsImplService();
//一般情況下,你只需要看哪一個類繼承了service,那麼這個類就是factory了:public class HelloWsImplService extends Service {...}HelloWs helloWsImplPort = factory.getHelloWsImplPort();//然後通過工廠擷取到操作類,就是真正有意義的那個類
helloWsImplPort.sayHello("hotusm");
如果是一個儲存在磁碟上的wsdl,我們需要這樣來產生:
wsimport -keep D:\jeesite\WebServiceTest\src\weather.wsdl
其他的操作都是一樣的。
CXF開發:cxf開發和jdk的開發是差不多的。差別是加上cxf的架包。