Web Service 是一種新的web應用程序分支,他們是自包含、自描述、模塊化的應用,可以發布、定位、通過web調用。Web Service可以執行從簡單的請求到復雜商務處理的任何功能。一旦部署以后,其他Web Service應用程序可以發現並調用它部署的服務。
實際上,WebService的主要目標是跨平台的可互操作性。為了達到這一目標,WebService完全基於XML(可擴展標記語言)、 XSD(XMLSchema)等獨立於平台、獨立於軟件供應商的標准,是創建可互操作的、分布式應用程序的新平台。由此可以看出,在以下三種情況下,使用 WebService會帶來極大的好處。
雖然本人完全明白Web Service,但要把概念說的專業,明了,還是引用大家的話比較好。要了解Web Service的朋友,推薦兩篇篇文章:
Web Service 解讀一:http://www.cnblogs.com/xiaocai0923/archive/2011/12/30/2308154.html
Web Service 解讀二:http://www.cnblogs.com/xiaocai0923/archive/2011/12/31/2308171.html
下面,就寫一個簡單的java WebService例子。
一、開發工具:
1.Eclipse Java EE IDE for Web Developers
2.apache-tomcat-7.x
二、配置Tomcat服務器:
三、創建web項目:
1.在java ee版的eclipse里執行:new->other->web->Dynamic Web Project 例如我的項目名稱:MyWebServices
2.(除了做項目需要,強烈建議使用eclipse而不是myeclipse做java ee開發)。這里為了方便java類的編譯,我們對類編譯路徑作一簡單配置:
右擊項目,然后在右擊菜單中選擇:Build Path->Configure Build Path->Java Build Path->Source->Default outer folder.
將原來的:MyWebService/build/classes改成MyWebService/WebContent/WEB-INF/classes
3.建立一個用於發布WebService的java類(我這里是Person類com.service包下):
1 package com.service; 2 3 public class Person { 4 5 public String desc(String name){ 6 7 return "hello! " + name; 8 } 9 10 }
四、將該類發布為WebService:
1.將這里的Person類發布為WebService(要發布為web服務的類不一定要在這里,可以是java project中的)
Person.java ->web services->create web services,如下圖所示:
2.一路點擊next完成即可,如果tomcat沒有啟動,在提示啟動時,請啟動。完成即可。
五、在瀏覽器中發布web服務:
1.用於發布該web服務的web項目就是我們創建的MyWebService項目。首先,打開tomcat服務器配置文件增加一個web節點。路徑是:
apache-tomcat-7.0.53\conf\server.xml,用記事本打開,在</Host>前加上虛擬路徑:
這里的path隨意配置,docBase根據自己的實際情況配置。
2.在WebContent目錄下創建index.jsp,在html標簽下添加<h1>hello geoman</h1>.然后啟動tomcat服務器。在地址欄里輸入:
http://localhost:8080/geoman/index.jsp
如果頁面能正常打開,則web虛擬節點配置正確。
3.在虛擬目錄配置正確的情況下,在瀏覽器地址欄輸入:
http://localhost:8080/geoman/services
則顯示如下所示的web服務,其中包括我們發布的Person 服務。如下圖所示:
4.點擊Person連接,可以看到Person服務的內容,如下圖所示:
也可以直接數據Person服務的地址:
http://localhost:8080/geoman/services/Person?wsdl
進行訪問。
六、創建Web服務客戶端:
1.首先創建一個java project,(我的項目名稱是MyWebServiceClient).
2.右擊項目創建Web Service Client,在service definition中找到Person.sdwl.完成即可。
此時,在項目中生成了Person服務的各個類。如下圖所示:
3.創建一個Test測試類,加入如下代碼:
1 package com.service; 2 3 import java.rmi.RemoteException; 4 5 public class Test { 6 7 public static void main(String args[]){ 8 PersonSoapBindingStub binding = null; 9 try { 10 binding = (PersonSoapBindingStub) 11 new PersonServiceLocator().getPerson(); 12 } 13 catch (javax.xml.rpc.ServiceException jre) { 14 if(jre.getLinkedCause()!=null) 15 jre.getLinkedCause().printStackTrace(); 16 17 } 18 19 binding.setTimeout(6000); 20 try { 21 System.out.println(binding.desc("GeoMan")); 22 } catch (RemoteException e) { 23 e.printStackTrace(); 24 } 25 26 } 27 28 }
4.運行Test,則可以看到調用該服務后的運行結果(必須打開tomcat,這樣服務才處於發布狀態):
至此,一個基於java的WebService便完整完成了!