1. 程式人生 > >5天學會jaxws-webservice程式設計第一天:學習筆記

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來定義(也叫做

XSD, XML Schema Definition)。

EAI(Enterprise Application Integration),是企業應用整合 EAI是將的異構應用整合的一種方法和技術。EAI通過建立底層結構,來聯絡橫貫整個企業的異構系統、應用、資料來源等,完成在企業內部的 ERP、CRM、SCM、資料庫、資料倉庫,以及其他重要的內部系統之間無縫地共享和交換資料的需要。

JAX-WS(全稱為 Java API for XML-Based Webservices )規範是一組XML web services的JAVA API

伺服器端,使用者只需要通過Java語言定義

遠端呼叫所需要實現的介面SEI(service endpoint interface),並提供相關的實現。

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

4、建立一個呼叫類,叫:HelloAsyncPollingClient.java   或  HelloAsyncCallBackClient.java

resource:http://blog.csdn.net/lifetragedy/article/details/7205832