天天看點

webservice jar包_springboot 官方例子--調用SOAP的Webservice服務

繼續翻譯:本指南将指導您使用Spring使用基于SOAP的Web服務。您将建構一個用戶端,該用戶端使用SOAP從基于WSDL的Webservice服務擷取國家資料。您将能夠根據某個國家的名稱查詢該國家的資料。

SOAP(簡單對象通路協定)是交換資料的一種協定規範,是一種輕量的、簡單的、基于XML(标準通用标記語言下的一個子集)的協定,它被設計成在WEB上交換結構化的和固化的資訊,采用了兩個協定:HTTP 和XML(标準通用标記語言下的一個子集)。HTTP用于實作 SOAP 的RPC 風格的傳輸, 而XML 是它的編碼模式。

我利用業餘時間,翻譯了Spring官網的例子,友善中文不好的同學,将陸續發到頭條上,歡迎大家關注,也可以上我個人BLOG:itmanclub.com,上面有已經翻譯過的。

webservice jar包_springboot 官方例子--調用SOAP的Webservice服務

程式結構

└── src └── main └── java └── hello
           

pom.xml檔案

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework gs-consuming-web-service 0.1.0org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE1.8org.springframework.boot spring-boot-starter org.springframework.ws spring-ws-core org.springframework.boot spring-boot-maven-plugin org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.12.3generateWSDLhello.wsdlhttp://localhost:8080/ws/countries.wsdl
           

Spring Boot将會你做如下的事:

  • 将 classpath 裡面所有用到的jar包建構成一個可執行的 JAR 檔案,友善執行你的程式
  • 搜尋public static void main()方法并且将它當作可執行類
  • 根據springboot版本,去查找相應的依賴類版本,當然你可以定義其它版本。

在本地運作目标Web服務

按照指南中的步驟操作,或者隻拷貝存儲庫并從其完整目錄運作服務(例如,使用mvn spring-boot:run)。您可以通過在浏覽器中通路http://localhost:8080/ws/countries.wsdl來驗證是否有效。

生成基于WSDL的域對象

SOAP Web服務的描述寫在WSDL中。JAXB提供了一種從WSDL(或更确切地說,在WSDL的節中包含的XSD)生成Java類的簡單方法。本次國家查詢服務的WSDL可以在http://localhost:8080/ws/countries.wsdl上找到。

要從Maven中的WSDL生成Java類,需要在pon.xml中增加如下設定:

org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.13.1generateWSDLhello.wsdlhttp://localhost:8080/ws/countries.wsdl
           

此安裝程式将為在指定的URL上找到的WSDL生成類,并将這些類放入hello.wsdl包中。

要對Gradle執行相同的操作,您的建構檔案中将需要以下内容:

task genJaxb { ext.sourcesDir = "${buildDir}/generated-sources/jaxb" ext.classesDir = "${buildDir}/classes/jaxb" ext.schema = "http://localhost:8080/ws/countries.wsdl" outputs.dir classesDir doLast() { project.ant { taskdef name: "xjc