基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā)WebService_第1頁
基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā)WebService_第2頁
基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā)WebService_第3頁
基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā)WebService_第4頁
基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā)WebService_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS 設(shè)計開發(fā) Web Service 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS 設(shè)計開發(fā) Web Service JAX-WS 概述 JAX-WS發(fā)展歷史(JAX-WS2.0與JAX-RPC1.1的 比較) 如何基于JAX-WS API 開發(fā)Web Service (Apache CXF基礎(chǔ)) 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXW

2、S標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS 概述 什么是JAX-WS? 為何使用 JAX-WS? 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS 概述 JAX-WS(Java API for XML-Based Web Services) JAX-WS 是 Java 社區(qū)(JCP)的工作成果(JSR224),它 為客戶機(jī)端和服務(wù)器端的 Web Service實現(xiàn)提供通用的應(yīng) 用程序編程接口(API)。通過采用一個面向 Web 服務(wù)的 標(biāo)準(zhǔn) API,旨在幫助服務(wù)用戶(客戶機(jī))和服務(wù)實現(xiàn)者

3、獲 得最大程度的標(biāo)準(zhǔn)性和靈活性。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS發(fā)展歷史 Web Service出現(xiàn)以來。首先是 SOAP,但 SOAP 僅描述消息的情況,然后是 WSDL,WSDL 并不會 告訴您如何使用 Java 編寫 Web 服務(wù)。在這種情 況下,JAX-RPC 1.0 應(yīng)運而生。經(jīng)過數(shù)月使用之后, 編寫此規(guī)范的 Java Community Process (JCP) 人員認(rèn) 識到需要對其進(jìn)行一些調(diào)整,調(diào)整的結(jié)果就是 JAX- RPC 1.1。該規(guī)范使用大約一年之后,JCP 人員希望

4、 構(gòu)建一個更好的版本:JAX-RPC 2.0。其主要目標(biāo)是 與行業(yè)方向保持一致,但行業(yè)中不僅只使用 RPC Web 服務(wù),還使用面向消息的 Web 服務(wù)。因此從 名稱中去掉了“RPC”,取而代之的是“WS”(當(dāng)然 表示的是 Web 服務(wù))。因此 JAX-RPC 1.1 的后續(xù)版 本是 JAX-WS 2.0Java API for XML-based Web services。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS2.0與JAX-RPC1.1的比較 哪些內(nèi)容保持不變? JAX-WS 2.0仍然支持

5、SOAP 1.1 over HTTP 1.1,因此互操作 性將不會受到影響。 JAX-WS2.0 仍然支持 WSDL 1.1,因此WSDL 1.1的相關(guān)規(guī)范 仍然適用。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS2.0與JAX-RPC1.1的比較 區(qū)別和變化:區(qū)別和變化: SOAP 1.2 JAX-RPC 和 JAX-WS 都支持 SOAP 1.1。JAX-WS 還支持 SOAP 1.2。 XML/HTTP WSDL 1.1 規(guī)范在 HTTP 綁定中定義,這意味著利用此規(guī)范可以在不使用 SOAP 的情況

6、下通過 HTTP 發(fā)送 XML 消息。JAX-RPC 忽略了 HTTP 綁定。而 JAX-WS 添加了對其的支持。 WS-I Basic Profile JAX-RPC 支持 WS-I Basic Profile (BP) V1.0,JAX-WS 支持 BP 1.1。(WS-I 即 Web 服務(wù)互操作性組織。) 新 Java 功能 JAX-RPC 映射到 Java 1.4,JAX-WS 映射到 Java 5.0。JAX-WS 依賴于 Java 5.0 中的很多新 功能。 Java EE 5 是 J2EE 1.4 的后續(xù)版本,添加了對 JAX-WS 的支持,但仍然支持 JAX-RPC。 基于JA

7、XWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS2.0與JAX-RPC1.1的比較 數(shù)據(jù)映射模型 JAX-RPC 具有自己的映射模型,此模型大約涵蓋了所有模式類型中的 90%。 JAX-WS 的數(shù)據(jù)映射模型是 JAXB。JAXB 可保證所有 XML 模式的映射。 接口映射模型 JAX-WS 的基本接口映射模型與 JAX-RPC 的區(qū)別并不大,不過二者之間存在以下差異: JAX-WS 的模型使用新的 Java 5.0 特性Annotations 。 JAX-WS 的模型引入了異步功能。 動態(tài)編程模型 JAX-WS 的動

8、態(tài)客戶機(jī)模型與 JAX-RPC 的對應(yīng)模型差別很大。很多更改都是為了認(rèn) 可行業(yè)需求: 引入了面向消息的功能。 引入了動態(tài)異步功能。 JAX-WS 還添加了動態(tài)服務(wù)器模型,而 JAX-RPC 則沒有此模型。 消息傳輸優(yōu)化機(jī)制(Message Transmission Optimization Mechanism,MTOM) JAX-WS 通過 JAXB 添加了對新附件規(guī)范 MTOM 的支持。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service JAX-WS 兩種開發(fā)方式 J

9、AX-WS 客戶端開發(fā)APIs JAX-WS 服務(wù)端開發(fā)APIs 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService JAX-WS 兩種開發(fā)方式 契約優(yōu)先契約優(yōu)先(WSDL First):從 WSDL 著手,生成 Java 類來實現(xiàn)服務(wù)。 代碼優(yōu)先代碼優(yōu)先 (JAVA First):從 Java 類著手,使用 Annotation 來生成 WSDL 文件和 Java 接口。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL F

10、irst) 基于Apache CXF實現(xiàn)JAX-WS2.0 Web Service 的WSDL First開發(fā)模式 Apache CXF基礎(chǔ) 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService Apache CXF 基礎(chǔ) Apache CXF簡介: Apache CXF: An Open Source Service Framework Apache CXF 是一個Service框架,它簡化了 Service的創(chuàng)建, 實現(xiàn)了JAX-WS2.0規(guī)范,并 通過了JAX-WS2.0 TCK; CXF和Spring無縫集 成; 基于

11、JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService Apache CXF 基礎(chǔ) Apache CXF功能特性功能特性 支持多種標(biāo)準(zhǔn)支持多種標(biāo)準(zhǔn) 支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ; 支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy; 支持 WSDL 1.1 、2.0; 支持 MTOM; 多種傳輸方式、多種傳輸方式、Bindings、Data Bindings 和和 Format Binding

12、s:SOAP、REST/HTTP; Data Bndings:目前支持 JAXB 2.0、Aegis 兩種,默認(rèn)是 JAXB 2.0。XMLBeans、 Castor 和 JiBX 數(shù)據(jù)綁定方式將在 CXF 2.1 版本中得到支持; 格式(Format):XML、JSON; 傳輸方式:HTTP、Servlet、JMS 和 Jabber; 可擴(kuò)展的 API 允許為 CXF 增加其它的 Bindings,以能夠支持其它的消息格式,比 如:CSV 和固定記錄長度。 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService Apache

13、CXF 基礎(chǔ) Apache CXF功能特性功能特性 靈活部署靈活部署 輕量級容器:可在 Tomcat 或基于 Spring 的容器中部署 Services; 集成 JBI:可以在如 ServiceMix, OpenESB or Petals 等等的 JBI 容器中將它部署為一個服務(wù)引擎; 集成 SCA:可以部署在如 Tuscany 之類的 SCA 容器中; 集成 J2EE:可以在 J2EE 應(yīng)用服務(wù)器中部署 Services,比如:Geronimo、JOnAS、JBoss、WebSphere Application Server 和 WebLogic Application Server,以及

14、 Jetty 和 Tomcat; 獨立的 Java 客戶端服務(wù)器。 支持多種編程語言支持多種編程語言 全面支持 JAX-WS 2.0 客戶端服務(wù)器編程模型; 支持 JAX-WS 2.0 synchronous、asynchronous 和 one-way APIs; 支持 JAX-WS 2.0 Dynamic Invocation Interface (DII) API; 支持 wrapped and non-wrapped 風(fēng)格; 支持 XML messaging API; 支持 JavaScript 和 ECMAScript 4 XML (E4X) ,客戶端與服務(wù)端均支持; 通過 Yoko

15、 支持 CORBA; 通過 Tuscany 支持 SCA; 通過 ServiceMix 支持 JBI ; 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 完成WSDL文件 示例: AccountManagerService.wsdl 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService WSDL文件 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebServ

16、ice WSDL文件 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService WSDL文件 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService WSDL文件 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 利用Apache CXF 的WSDL2JAVA 工具生成java 類 注意:環(huán)境變量path增加: %CXF_HOME%bin 輸入命令: D

17、:workspacewsdlwsdl2java -client -d SrcDir AccountManagerService.wsdl 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 生成代碼列表: 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 分析生成JAVA類 根據(jù)生成PortType接口類編寫具體服務(wù)實現(xiàn)類(Server端) 根據(jù)生成的客戶端binding

18、測試類 來測試具體服務(wù) 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 分析生成JAVA類 1、根據(jù)WSDL中不同Name 的Message節(jié)點,生成對應(yīng)類型的Schema的類: CheckBalance.java, CheckBalanceResponse.java Withdraw.java,WithdrawResponse.java 示例: 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAXW

19、S標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 分析生成JAVA類 2、根據(jù)WSDL中PortType節(jié)點,生成對應(yīng)類型的JAVA類: 示例: 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 分析生成JAVA類 3、生成對象工廠類ObjectFactory.java 和包信息類 package-info.java 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL

20、 First) 4、生成客戶端訪問服務(wù)的Service類 AccountManagerService.java 該類繼承: javax.xml.ws.Service 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 5、根據(jù)WSDL中不同的binding生成客戶端訪問服務(wù)的測試類: AccountManagerServicePortType_AccountMan

21、agerServiceSOAP11PortHtt p_Client.java AccountManagerServicePortType_AccountManagerServiceSOAP12PortHtt p_Client.java AccountManagerServicePortType_AccountManagerServiceHttpport_Client. java 示例: 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) We

22、bServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 根據(jù)生成PortType接口類編寫具體服務(wù)實現(xiàn)類(Server端) 1、編寫服務(wù)實現(xiàn)類: AccountManagerServiceImpl.java 該類實現(xiàn)接口AccountManagerServicePortType.java 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 根據(jù)生成PortType接口類編寫具體服務(wù)實現(xiàn)類(Server端) 2、編寫服務(wù)啟動

23、類Server.java,運行該類啟動發(fā)布服務(wù); 使用javax.xml.ws.Endpoint類的publish方法 示例: 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 契約優(yōu)先契約優(yōu)先(WSDL First) 根據(jù)生成的客戶端binding測試類 來測試具體服務(wù) 運行測試類對服務(wù)進(jìn)行訪問: AccountManagerServicePortType_AccountManagerServiceSOAP 11PortHttp_Client.java 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAX

24、WS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service JAX-WS 客戶端APIs JAX-WS 服務(wù)端APIs 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service JAX-WS 客戶端APIs javax.xml.ws.Service javax.xml.ws.BindingProvider javax.xml.ws.Dispatch 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用C

25、XF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service javax.xml.ws.Service Service類提供對類提供對WebService的客戶端訪問方法的客戶端訪問方法 主要方法:主要方法: 構(gòu)造方法:Service(.URL wsdlDocumentLocation, space.QName serviceName) addPort(space.QName portName, java.lang.String bindingId, java.lang.String endpointAdd

26、ress) create(.URL wsdlDocumentLocation, space.QName serviceName) getPort(java.lang.Class serviceEndpointInterface) createDispatch(EndpointReference endpointReference, java.lang.Class type, Service.Mode mode, WebServiceFeature features) setExecutor(java.util.concurrent.Executor executor

27、) setHandlerResolver(HandlerResolver handlerResolver) 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Service 示例1: private static final QName SERVICE_NAME = new QName(, HelloWorld); private static final QName PORT_NAME = new QName(, HelloWorldPort); Service service = Servic

28、e.create(SERVICE_NAME); / Endpoint Address String endpointAddress = ; / Add a port to the Service service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress); HelloWorld hw = service.getPort(HelloWorld.class); System.out.println(hw.sayHi(World); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)

29、采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Service 示例2: URL wsdlLocation = new URL(); QName serviceName = new QName(, MyService); Service s = Service.create(wsdlLocation, serviceName); HelloWorld hw = service.getPort(HelloWorld.class); System.out.println(hw.sayHi(World); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXW

30、S標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service javax.xml.ws.BindingProvider The BindingProvider interface provides access to the protocol binding and associated context objects for request and response message processing. 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.w

31、s.BindingProvider 示例: javax.xml.ws.Service service = .; com.example.StockQuoteProvider proxy = service.getPort(portName, com.example.StockQuoteProvider.class) javax.xml.ws.BindingProvider bp = (javax.xml.ws.BindingProvider)proxy; Map context = bp.getRequestContext(); context.setProperty(javax.xml.ws

32、.session.maintain, Boolean.TRUE); proxy.getLastTradePrice(ACME); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service javax.xml.ws.Dispatch The Dispatch interface provides support for the dynamic invocation of a service endpoint operations. The javax.xml.ws.Service

33、 interface acts as a factory for the creation of Dispatch instances. 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Dispatch 示例示例1: Synchronous, Payload-Oriented Source reqMsg = .; Service service = .; Dispatch disp = service.createDispatch(portName, Source.class, PAYLOAD)

34、; Source resMsg = disp.invoke(reqMsg); 示例示例2 Synchronous, Message-Oriented SOAPMessage soapReqMsg = .; Service service = .; Dispatch disp = service.createDispatch(portName, SOAPMessage.class, MESSAGE); SOAPMessage soapResMsg = disp.invoke(soapReqMsg); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計

35、開發(fā)WebService javax.xml.ws.Dispatch 示例示例3 Synchronous, Payload-Oriented With JAXB Objects JAXBContext jc = JAXBContext.newInstance(primer.po); Unmarshaller u = jc.createUnmarshaller(); PurchaseOrder po = (PurchaseOrder)u.unmarshal( new ( po.xml ) ); Service service = .; Dispatch disp = service.create

36、Dispatch(portName, jc, PAYLOAD); OrderConfirmation conf = (OrderConfirmation)disp.invoke(po); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Dispatch 示例示例4 Asynchronous, Polling, Message-Oriented SOAPMessage soapReqMsg = .; Service service = .; Dispatch disp = service.crea

37、teDispatch(portName, SOAPMessage.class, MESSAGE); Response res = disp.invokeAsync(soapReqMsg); while (!res.isDone() / do something while we wait SOAPMessage soapResMsg = res.get(); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Dispatch 示例示例5 Asynchronous, Callback, Payloa

38、d-Oriented class MyHandler implements AsyncHandler public void handleResponse(Response res) Source resMsg = res.get(); / do something with the results Source reqMsg = .; Service service = .; Dispatch disp = service.createDispatch(portName, Source.class, PAYLOAD); MyHandler handler = new MyHandler();

39、 disp.invokeAsync(reqMsg, handler); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service JAX-WS 服務(wù)端APIs javax.xml.ws.Endpoint javax.xml.ws.Provider javax.xml.ws.WebServiceContext 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Servic

40、e javax.xml.ws.Endpoint A Web service endpoint. Endpoints are created using the static methods defined in this class. An endpoint is always tied to one Binding and one implementor, both set at endpoint creation time. 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Endpoint

41、javax.xml.ws.Endpoint publish(java.lang.String address, java.lang.Object implementor) Creates and publishes an endpoint for the specified implementor object at the given address. getBinding() Returns the binding for this endpoint. setExecutor(java.util.concurrent.Executor executor) Sets the executor

42、 for this Endpoint instance. setMetadata(java.util.List metadata) Sets the metadata for this endpoint. 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Endpoint 示例1: protected Server() throws Exception System.out.println(Starting Server); Object implementor = new AccountMana

43、gerServiceImpl(); String address = ; Endpoint.publish(address, implementor); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Endpoint 示例2: / assume Test is an endpoint implementation class annotated with WebService Test test = new Test(); HttpServer server = HttpServer.crea

44、te(new InetSocketAddress(8080),10); server.setExecutor(Executor.newFixedThreadPool(10); server.start(); HttpContext context = server.createContext(/test); Endpoint endpoint = Endpoint.create(SOAPBinding.SOAP11HTTP_BINDING, test); endpoint.publish(context); 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF

45、引擎設(shè)計 開發(fā)WebService 基于JAX-WS API 開發(fā)Web Service javax.xml.ws.Provider The Provider interface offers an alternative to SEIs and may be implemented by services wishing to work at the XML message level. 基于JAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計開發(fā) WebServiceJAXWS標(biāo)準(zhǔn)采用CXF引擎設(shè)計 開發(fā)WebService javax.xml.ws.Provider 主要方法:主要方法: createSer

46、viceDelegate(.URL wsdlDocumentLocation, space.QName serviceName, java.lang.Class serviceClass) Creates a service delegate object. createEndpoint(java.lang.String bindingId, java.lang.Object implementor) Creates an endpoint object with the provided binding and implementation object. createAndPublishEndpoint(java.lang.String address, java.lang.Object implementor) Creates and publishes an endpoint object with the specified address and implementatio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論