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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring整合webservice

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

?

?

主要講解點:

  • WebServiceCXF介紹(了解)

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

  • JAX-RS服務獨立發布及測試、JAX-RS整合spring開發及測試、Restful架構風格(重點)

  • 定區關聯客戶功能的實現(重點)

  • 一、WebServiceCXF簡介(了解)

  • 什么是WebService

    WebService是一個平臺獨立的,低耦合的,自包含的、基于可編程的web的應用程序,可使用開放的XML標準來描述、發布、發現、協調和配置這些應用程序,用于開發分布式的互操作的應用程序。

  • 很多個系統,進行分布的部署,分布的系統數據通信,解決技術就是WebService。

  • 什么是CXF

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

    官網:http://cxf.apache.org/ 最新版本:3.1.11

  • 為什么用WebServiceCXF

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

    CXF WebService開發,主要分為兩種服務提供方式WS、RS

    4、兩種傳輸數據的方式

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

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

    二、JAX-WS服務獨立發布(能實現)

    1、建立maven java項目

    2、在項目中導入CXF jar包支持

    要提供jaxws服務,引入jaxws的jar包,要提供jaxrs服務,引入jaxrs的jar包

    導入maven坐標

    查看完整日志

    3、編寫服務端程序

    1)編寫實體類

    2)編寫服務

    @WebService用在類上面,標記類是WebService服務提供對象

    @WebMethod使用方法上面,標記方法是WebService服務提供方法

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

    3)將UserService的服務方法,發布到網絡上,給其它系統調用

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

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

    4、編寫客戶端操作

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

    添加日志監控

    四、JAX-WS整合spring服務器端開發(能實現)

    1、建立maven web項目,基于tomcat發布服務

    基于maven 導入坐標 CXF開發

    Spring 開發

    基于Spring測試開發

    配置web.xml

    CXF基于web訪問

    2、導入實體類、Service

    3、配置spring cxf服務發布

    1)引入名稱空間

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

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

    2)配置服務

    3)配置啟動服務端口

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

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

    1、applicationContext-test.xml配置

    2、測試用例編寫

  • Restful架構風格簡介(重要,能說)

  • 什么是Restful風格

    Representational State Transfer

    一種軟件架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用于客戶端和服務器交互類的軟件?;谶@個風格設計的軟件可以更簡潔,更有層次,更易于實現緩存等機制。

    在服務器端,應用程序狀態和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程序對象、數據庫記錄、算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統一的接口,以便在客戶端和服務器之間傳輸狀態。使用的是標準的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。

  • Restful風格好處

  • 基于這種風格架構,軟件編寫可以更簡潔

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

  • 3)更容易實現緩存機制(第一次訪問資源緩存到本地,第二次訪問資源,返回304,客戶端調用本地)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的用戶信息

    小結:訪問服務器統一資源,采用不同HTTP協議請求方式,服務器端可以得知進行CRUD哪個操作

  • JAX-RS服務獨立發布(能實現)

  • 建立maven項目

  • 基于maven導入坐標

    2、導入實體類

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

    3、編寫業務類

    注解說明;

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

    如果訪問saveUser方法 /userService/user

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

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

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

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

    4、發布服務

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

    1、客戶端程序的編寫

    兩種方式:

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

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

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

    解決:pom引入json轉換器

    十、JAX-RS整合spring服務器端開發(能實現)

    1、建立maven項目

    1)導入maven坐標

    2)web.xml

    ?

    2、導入實體類和Service

  • 在spring配置發布rs服務

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

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

  • 最終訪問資源服務路徑:

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

    +類@Path+方法@Path

    1)applicationContext.xml配置

    2)配置服務啟動端口

    4、編寫客戶端代碼 類似獨立服務客戶端代碼

    采用WebClient工具實現

    ?

    如何選擇SOAP Webservice和Restful Webservice的使用,首先需要理解就是SOAP偏向于面向活動,有嚴格的規范和標準,包括安全,事務等各個方面的內容,同時SOAP強調操作方法和操作對象的分離,有WSDL文件規范和XSD文件分別對其定義。而REST強調面向資源,只要我們要操作的對象可以抽象為資源即可以使用REST架構風格。

    ?

    十一、定區關聯客戶CRM系統服務接口編寫(重要) ????

    此項目實現是右側顯示與當前定區關聯的客戶列表,左側顯示還沒有與定區關聯的列表

    正常操作應該反過來設置

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

    2、編寫webservice服務接口

    ????????

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

    而@pathparem中,URL中只出現參數的值,不出現鍵值對,比如: "/users/2011/06/30"

    企業實際開發中 雙方先定接口,然后連調測試

    十二、定區關聯客戶CRM業務接口實現(重要)

    3、提供服務接口實現,連接數據庫完成功能

    CRM系統已經導入Spring Data JPA

    4、編寫DAO

    十三、定區關聯客戶CRM系統服務發布(重要)

    發布WebService服務

    1、配置web.xml

    2、applicationContext.xml

    3、bug分析及解決

    1)項目中原來Customer類的sex類型int,改為Integer更新表結構,加入數據為null

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

    ????

    ?

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

    十四、定區關聯客戶窗口彈出發起Ajax請求數據(能實現)

    1、判斷用戶是否只選擇了一個定區,如果是,彈出關聯客戶到定區的窗口

  • 彈出關聯客戶窗口,有遮罩窗口

  • 3、在窗口彈出時,向服務器發送兩個請求,獲取已關聯客戶和未關聯客戶列表

    十五、定區關聯客戶窗口數據列表WebService遠程加載(重要)

    4、編寫FixedAreaAction添加方法調用CRM WebService查詢數據

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。