5天學會jaxws-webservice程式設計第一天:學習筆記
SOA(Service-Oriented Architecture 面向服務架構)。
SOA
系統原型的一個典型例子是通用物件請求代理體系結構(Common
Object Request Broker Architecture,CORBA)。
SOA通過使用基於XML(標準通用標記語言的子集)
的語言(稱為 Web 服務描述語言(Web
Services Definition Language,WSDL))來描述介面,服務已經轉到更動態且更靈活的介面系統中,非以前
CORBA 中的介面描述語言(Interface Definition Language,IDL)可比了。
SOA 服務用訊息進行通訊,該訊息通常使用XML Schema來定義(也叫做
EAI(Enterprise
Application Integration),是企業應用整合。 EAI是將的異構應用整合的一種方法和技術。EAI通過建立底層結構,來聯絡橫貫整個企業的異構系統、應用、資料來源等,完成在企業內部的
ERP、CRM、SCM、資料庫、資料倉庫,以及其他重要的內部系統之間無縫地共享和交換資料的需要。
JAX-WS(全稱為
Java API for XML-Based Webservices )規範是一組XML web services的JAVA
API。
在伺服器端,使用者只需要通過Java語言定義
JAX-WS2.0 (JSR 224)是Sun新的web services協議棧,是一個完全基於標準的實現。在binding層,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing層,使用的是the Streaming API for XML (StAX, JSR 173),同時它還完全支援schema規範。
soap:簡單物件訪問協議.
WS-Addressing規範定義了一種將訊息定址資訊綜合到Web
services訊息中的標準。
訊息傳輸優化機制:MTOM(Message
Transmission Optimization Mechanism)MTOM是一種機制,用來以原始位元組形式傳輸包含SOAP訊息的較大二進位制附件,從而使所傳輸的訊息較小。
1、安裝jaxws-ri-2.2.8和配置環境變數
非安裝版軟體:jaxws-ri-2.2.8解壓即可使用
環境變數:JAXWS_HOME=D:\Program Files(x86)\jaxws-ri-2.2.8
---------》服務端
2、新建web工程JaxWSProject,寫Hello.java
3、通過Java類編譯Webservice
我們選用Server端通過Java Class生成webservice,而客戶端通過wsdl生成Java呼叫類的做法。
JAXWS為我們提供了兩個工具:
ü wsgen
主要用於Server端通過Java類編譯成Webservice及相關的wsdl檔案
ü wsimport
主要用於Client端(呼叫端)通過wsdl編譯出調用Server端的Java檔案
------------------------------------------------------------------------------------------------------------>目錄及命令(使用完整路徑)如下
D:\Program Files(x86)\jaxws-ri-2.2.8\jaxws-ri\bin>
wsgen
-cp D:\dm\JaxWSProject\WebContent\WEB_INF\classes ctsjavacoe.ws.fromjava.Hello
-wsdl
-s D:\dm\JaxWSProject\wssrc
-d D:\dm\JaxWSProject\build
-r D:\dm\JaxWSProject\wsdl
------------------------------------------------------------------------------------------------------------>
4、將生成的wssrc目錄下的檔案cut到src目錄
5、釋出
將webContext目錄下所有檔案拷到tomcat的webapps目錄下,啟動tomcat即完成釋出。
命令啟動/關閉tomcat: cd /d D:\Program Files(x86)\apache-tomcat-7.0.52\bin 切換到該目錄
catalina start/stop 啟動
6、訪問原理:
java(Service)----wsgen------>wsdl//xsd-------wsimport------>java(client)
一個是wsdl檔案,這個就是我們的webservice的entry(相當與入口、介面),一個是xsd檔案,這個是什麼?
這個就是我們java的方法裡的引數的對應,或者換句話說,它就是xml格式的java bean,在webservice的世界裡,xsd是作為資料結構描述用的。
----------》客戶端
1、新建java工程J阿小WSClient,將Server端的wsdl及xsd都手工copy到客戶端工程的wsdl目錄下
2、執行生客戶端程式碼的wsimport命令如下: (Hello.java與HelloService.java是wsimport給我們生成的供客戶端呼叫的java檔案。)
D:\Program Files(x86)\jaxws-ri\bin>wsimport -keep -b D:\fft\JaxWSClient\binding.xml -d D:\fft\JaxWSClient\bin -s D:\fft\JaxWSClient\src D:\fft\JaxWSClient\wsdl\HelloService.wsdl
3、HelloService.java檔案修改
ile:/D:/workspace/JaxWSClient/wsdl/HelloService.wsdl |
把它們改成:
http://localhost:9090/JaxWSSample/HelloService?wsdl |
resource:http://blog.csdn.net/lifetragedy/article/details/7205832