日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring整合webservice

發(fā)布時間:2025/1/21 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring整合webservice 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

?

主要講解點:

  • WebServiceCXF介紹(了解)

  • JAX-WS服務(wù)獨立發(fā)布及測試、JAX-WS整合spring開發(fā)及測試(了解)

  • JAX-RS服務(wù)獨立發(fā)布及測試、JAX-RS整合spring開發(fā)及測試、Restful架構(gòu)風(fēng)格(重點)

  • 定區(qū)關(guān)聯(lián)客戶功能的實現(xiàn)(重點)

  • 一、WebServiceCXF簡介(了解)

  • 什么是WebService

    WebService是一個平臺獨立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。

  • 很多個系統(tǒng),進行分布的部署,分布的系統(tǒng)數(shù)據(jù)通信,解決技術(shù)就是WebService。

  • 什么是CXF

    Apache CXF = Celtix + XFire,開始叫 Apache CeltiXfire,后來更名為 Apache CXF 了,以下簡稱為 CXF。CXF 繼承了 Celtix 和 XFire 兩大開源項目的精華,提供了對 JAX-WS 全面的支持,并且提供了多種 Binding 、DataBinding、Transport 以及各種 Format 的支持,并且可以根據(jù)實際項目的需要,采用代碼優(yōu)先(Code First)或者 WSDL 優(yōu)先(WSDL First)來輕松地實現(xiàn) Web Services 的發(fā)布和使用。Apache CXF已經(jīng)是一個正式的Apache頂級項目。

    官網(wǎng):http://cxf.apache.org/ 最新版本:3.1.11

  • 為什么用WebServiceCXF

  • CXF是目前最主流WebService開發(fā)框架,由Apache提供

    CXF WebService開發(fā),主要分為兩種服務(wù)提供方式WS、RS

    4、兩種傳輸數(shù)據(jù)的方式

    1)JAX-WS 傳輸數(shù)據(jù),就是XML格式,基于SOAP協(xié)議(Simple Object Access protocol,簡單對象訪問協(xié)議)(了解)

    2)JAX-RS傳輸數(shù)據(jù),傳輸XML格式或者JSON格式,基于HTTP協(xié)議(重點)

    二、JAX-WS服務(wù)獨立發(fā)布(能實現(xiàn))

    1、建立maven java項目

    2、在項目中導(dǎo)入CXF jar包支持

    要提供jaxws服務(wù),引入jaxws的jar包,要提供jaxrs服務(wù),引入jaxrs的jar包

    導(dǎo)入maven坐標(biāo)

    查看完整日志

    3、編寫服務(wù)端程序

    1)編寫實體類

    2)編寫服務(wù)

    @WebService用在類上面,標(biāo)記類是WebService服務(wù)提供對象

    @WebMethod使用方法上面,標(biāo)記方法是WebService服務(wù)提供方法

    @WebService注解配置endPointInterface接口服務(wù)完整類名,servicename服務(wù)名稱

    3)將UserService的服務(wù)方法,發(fā)布到網(wǎng)絡(luò)上,給其它系統(tǒng)調(diào)用

    4)訪問地址:http://localhost:9999/userService?wsdl

    WSDL:(Web Services Description Language) WSDL 文件是一個 XML 文檔,用于說明一組 SOAP 消息以及如何交換這些消息。大多數(shù)情況下由軟件自動生成和使用。

    4、編寫客戶端操作

    三、JAX-WS原理分析和日志消息顯示(了解,能說)

    添加日志監(jiān)控

    四、JAX-WS整合spring服務(wù)器端開發(fā)(能實現(xiàn))

    1、建立maven web項目,基于tomcat發(fā)布服務(wù)

    基于maven 導(dǎo)入坐標(biāo) CXF開發(fā)

    Spring 開發(fā)

    基于Spring測試開發(fā)

    配置web.xml

    CXF基于web訪問

    2、導(dǎo)入實體類、Service

    3、配置spring cxf服務(wù)發(fā)布

    1)引入名稱空間

    xmlns:jaxws=http://cxf.apache.org/jaxws

    xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"

    2)配置服務(wù)

    3)配置啟動服務(wù)端口

    4)訪問地址:http://localhost:9998/cxf_ws_spring/services/userService?wsdl

    五、JAX-WS整合spring客戶端代碼測試(能實現(xiàn))

    1、applicationContext-test.xml配置

    2、測試用例編寫

  • Restful架構(gòu)風(fēng)格簡介(重要,能說)

  • 什么是Restful風(fēng)格

    Representational State Transfer

    一種軟件架構(gòu)風(fēng)格,設(shè)計風(fēng)格而不是標(biāo)準(zhǔn),只是提供了一組設(shè)計原則和約束條件。它主要用于客戶端和服務(wù)器交互類的軟件。基于這個風(fēng)格設(shè)計的軟件可以更簡潔,更有層次,更易于實現(xiàn)緩存等機制。

    在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應(yīng)用程序?qū)ο蟆?shù)據(jù)庫記錄、算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統(tǒng)一的接口,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。使用的是標(biāo)準(zhǔn)的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。

  • Restful風(fēng)格好處

  • 基于這種風(fēng)格架構(gòu),軟件編寫可以更簡潔

  • 基于HTTP協(xié)議,支持多種消息格式,比如XML、JSON

  • 3)更容易實現(xiàn)緩存機制(第一次訪問資源緩存到本地,第二次訪問資源,返回304,客戶端調(diào)用本地)200、 500 、404、304

    3、樣例演示

    POST請求方式訪問????????保存操作(增,英文:Create)

    DELETE請求方式訪問????????刪除操作(刪,英文:Delete)

    PUT 請求方式訪問????????????修改操作(改,英文:Update)

    GET請求方式訪問????????????查詢操作(查,英文:Retrieve)

    http://localhost:9997/userService/user????????查詢所有用戶信息

    http://localhost:9997/userService/user/1 ????查詢用戶編號為1的用戶信息

    小結(jié):訪問服務(wù)器統(tǒng)一資源,采用不同HTTP協(xié)議請求方式,服務(wù)器端可以得知進行CRUD哪個操作

  • JAX-RS服務(wù)獨立發(fā)布(能實現(xiàn))

  • 建立maven項目

  • 基于maven導(dǎo)入坐標(biāo)

    2、導(dǎo)入實體類

    @XmlRootElement指定序列化(轉(zhuǎn)換XML)對象名字

    3、編寫業(yè)務(wù)類

    注解說明;

    1)訪問資源路徑的注解:@Path

    如果訪問saveUser方法 /userService/user

    2)請求參數(shù)和返回值的注解:@Produces生成(方法返回值)@Consumes消費(方法????????參數(shù))

    ????@Consumes 指定能夠處理客戶端傳遞過來數(shù)據(jù)格式

    ????@Produces 指定能夠生成哪種格式數(shù)據(jù)返回給客戶端

    3)請求方式的注解:@GET查詢 @PUT 修改 @POST 增加 @DELETE 刪除

    4、發(fā)布服務(wù)

    八、JAX-RS客戶端WebClient的使用(會用)

    1、客戶端程序的編寫

    兩種方式:

    1)使用http client工具,需要自己對HTTP協(xié)議內(nèi)容進行定制和解析

    2)WebClient工具類使用(CXF自帶)

    九、JAX-RS服務(wù)通信添加json轉(zhuǎn)換支持(會用)

    解決:pom引入json轉(zhuǎn)換器

    十、JAX-RS整合spring服務(wù)器端開發(fā)(能實現(xiàn))

    1、建立maven項目

    1)導(dǎo)入maven坐標(biāo)

    2)web.xml

    ?

    2、導(dǎo)入實體類和Service

  • 在spring配置發(fā)布rs服務(wù)

    xmlns:jaxrs=http://cxf.apache.org/jaxrs

    xsi:schemaLocation="http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"

  • 最終訪問資源服務(wù)路徑:

    服務(wù)器根目錄地址+web.xml配置+applicationContext.xml address配置

    +類@Path+方法@Path

    1)applicationContext.xml配置

    2)配置服務(wù)啟動端口

    4、編寫客戶端代碼 類似獨立服務(wù)客戶端代碼

    采用WebClient工具實現(xiàn)

    ?

    如何選擇SOAP Webservice和Restful Webservice的使用,首先需要理解就是SOAP偏向于面向活動,有嚴(yán)格的規(guī)范和標(biāo)準(zhǔn),包括安全,事務(wù)等各個方面的內(nèi)容,同時SOAP強調(diào)操作方法和操作對象的分離,有WSDL文件規(guī)范和XSD文件分別對其定義。而REST強調(diào)面向資源,只要我們要操作的對象可以抽象為資源即可以使用REST架構(gòu)風(fēng)格。

    ?

    十一、定區(qū)關(guān)聯(lián)客戶CRM系統(tǒng)服務(wù)接口編寫(重要) ????

    此項目實現(xiàn)是右側(cè)顯示與當(dāng)前定區(qū)關(guān)聯(lián)的客戶列表,左側(cè)顯示還沒有與定區(qū)關(guān)聯(lián)的列表

    正常操作應(yīng)該反過來設(shè)置

    1、在crm_management項目中,要引入WebService CXF jar包

    2、編寫webservice服務(wù)接口

    ????????

    @Queryparam中,指定的是URL中的參數(shù)是以鍵值對的形式出現(xiàn)的,而在程序中@QueryParam("from") int from則讀出URL中from的值,如http://xxxx.xxx/xxx?from=10

    而@pathparem中,URL中只出現(xiàn)參數(shù)的值,不出現(xiàn)鍵值對,比如: "/users/2011/06/30"

    企業(yè)實際開發(fā)中 雙方先定接口,然后連調(diào)測試

    十二、定區(qū)關(guān)聯(lián)客戶CRM業(yè)務(wù)接口實現(xiàn)(重要)

    3、提供服務(wù)接口實現(xiàn),連接數(shù)據(jù)庫完成功能

    CRM系統(tǒng)已經(jīng)導(dǎo)入Spring Data JPA

    4、編寫DAO

    十三、定區(qū)關(guān)聯(lián)客戶CRM系統(tǒng)服務(wù)發(fā)布(重要)

    發(fā)布WebService服務(wù)

    1、配置web.xml

    2、applicationContext.xml

    3、bug分析及解決

    1)項目中原來Customer類的sex類型int,改為Integer更新表結(jié)構(gòu),加入數(shù)據(jù)為null

    crm_management引入crm_domain來自本地maven倉庫(修改類型后,沒有重新install)

    ????

    ?

    2)原因:實體類沒有添加@XmlRootElement注解

    十四、定區(qū)關(guān)聯(lián)客戶窗口彈出發(fā)起Ajax請求數(shù)據(jù)(能實現(xiàn))

    1、判斷用戶是否只選擇了一個定區(qū),如果是,彈出關(guān)聯(lián)客戶到定區(qū)的窗口

  • 彈出關(guān)聯(lián)客戶窗口,有遮罩窗口

  • 3、在窗口彈出時,向服務(wù)器發(fā)送兩個請求,獲取已關(guān)聯(lián)客戶和未關(guān)聯(lián)客戶列表

    十五、定區(qū)關(guān)聯(lián)客戶窗口數(shù)據(jù)列表WebService遠程加載(重要)

    4、編寫FixedAreaAction添加方法調(diào)用CRM WebService查詢數(shù)據(jù)

    總結(jié)

    以上是生活随笔為你收集整理的spring整合webservice的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。