本文來自本人忘密碼的博客:http://blog.csdn.net/TaoHero_1081 所有權歸本人所有,轉載時請註明出處http://blog.csdn.net/ctojxzsyczta 和作者 陳濤 未經允許不得轉載 webservice的特點:
跨平臺:跨語言、跨系統、實現分佈式處理
webservice的數據傳輸介質: XML
webservice由兩部分組成:
1、soap (simple object access protocol)簡單對象訪問協議 主要處理webservice之間的基本通信協議
2、wsdl 是webservice的描述語言,它定義了webservice做什麼,怎樣做查詢的信息
在java中實現webservice,通常我們應用了axis,axis讓webservice更加方便:
在tomcat服務器下的部署分爲以下步驟
1、將axis文件考入到tomcat的webapps目錄下.
2、啓動tomcat,在IE中輸入 http://localhost:8080/axis進入axis的主頁,單擊Validate下載所需的jar包,jar包名如:activation.jar
、mail.jar、xmlsec.jar安全管理,它會放到axis目錄下的lib目錄中
3、創建一個pojo,當中包含了商業邏輯,將pojo考入到部署的axis目錄下,將後綴名改爲JWS.
4、(在不用axis情況下)將這個pojo部署到一個soap的服務器上.
5、生成client訪問code.
6、部署客戶端應用.
以下是一個示例.
部署在axis目錄pojo,文件名Hello.jws,它返回了一個String
public static String sayHello(String userName){
return userName+":您好!";
}
}
//client調用code如下:
public class Client{
public static void main(String[] args)throws Exception{
//實例化了一個service,得到了一個service
Service service = new Service();
//通過service產生一個Call object,invoke web
Call call = (Call)service.createCall();
//設定webservice的URL
call.setTargetEndpointAddress(new URL("http://localhost:8080/axis/Hello.jws?WSDL"));
//設定了將要invoke webservice的方法
call.setOperationName("sayHello");
//調用webservice的method,並得到了webservice的response data放到result當中
String result = (String)call.invoke(new String[]{"陳濤"});
//在client print
System.out.println(result);
}
}
以上就是一個簡單的webservice的實現,通過客戶端直接調用了服務器端的方法,是不是很簡單,下面介紹一下soap以及wsdl
soap(simple object access protocol)
Soap是XML Web Service的通信協議,soap是一種規範,用來定義消息的XML格式,這是規範中所必需的部分,包含在一對soap無素中的,結構
正確的xml段就是soap消息
WSDL
WSDL描述語言一般包含三部分:
1、what部分包含了type、message和portType元素
Type:定義了webservice使用的數據結構,一般使用xml Schema定義
message:一個message是soap的基本通信元素,每個message可以有一個或多個Part,每個part一個參數
PortType:消息彙總爲不同的操作並歸入到一個被稱爲portType的實體中,一個portType代表一個接口(webservice支持操作集合),每個
webservice可以有多個接口,它們使用portType來表示,第個操作又包含input和output部分
2、How部分 包含binding元素
binding元素將portType綁定到特定的通信協議上(如HTTP上的SOAP協議)
3、where部分 由service元素組成
它將portType,binding以及webservice實際的位置(URL)放在一起描述
三、客戶端
客戶端分爲瘦客戶和肥客戶,瘦客戶包括web瀏覽器,該類客戶通常經由輕量級協議與web service連接.肥客戶包括applet、還有各類應用以
及現存系統,通常使用重量級協議連接web service