Springboot使用CXF進(jìn)行WSDL轉(zhuǎn)換及WebService服務(wù)調(diào)用過(guò)程
在開(kāi)發(fā)過(guò)程中,對(duì)接比較老的系統(tǒng)經(jīng)常需要將 WSDL 文件轉(zhuǎn)換為 Java 代碼以便與 Web 服務(wù)進(jìn)行交互。Apache CXF 提供了便捷的方式來(lái)完成這一任務(wù)。
本文將詳細(xì)介紹如何使用 CXF 添加相關(guān)依賴,并通過(guò)兩種方法將 WSDL 文件轉(zhuǎn)換為 Java 代碼。最后,我們將展示如何調(diào)用生成的 WebService 服務(wù)接口。
1.添加依賴
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.5.8</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.5.8</version>
</dependency>
2.wsdl轉(zhuǎn)java代碼,這有兩種方式
第一種,使用bat命令轉(zhuǎn)換
wsimport -keep http://10.1.1.1:8080/webservice/111/service/webservice?wsdl
第二種,使用maven插件實(shí)現(xiàn)(版本盡量和cxf依賴版本一致)
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.5.8</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/resources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://10.1.1.1:8080/webservice/111/service/webservice?wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
wsdl為這種格式,類似接口文檔

轉(zhuǎn)換為下圖這種(其中g(shù)et set都是方法)

3.這是轉(zhuǎn)換后的webService類
其中name是Web Service的本地名稱,targetNamespace指定了Web Service的目標(biāo)命名空間,wsdlLocation指定了WSDL文檔的位置,serviceName是WSDL中定義的服務(wù)的名稱,portName指定了WSDL中定義的端口的名稱。
@WebServiceClient(name = "webservice", targetNamespace = "http://service.xxx", wsdlLocation = "http://10.1.1.1:8080/webservice/111/service/webservice?wsdl")
public class Webservice
extends Service
{
private final static URL WEBSERVICE_WSDL_LOCATION;
private final static WebServiceException WEBSERVICE_EXCEPTION;
private final static QName WEBSERVICE_QNAME = new QName("http://service.xxx", "webservice");
static {
URL url = null;
WebServiceException e = null;
try {
url = new URL("http://10.1.1.1:8080/webservice/111/service/webservice?wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}
WEBSERVICE_WSDL_LOCATION = url;
WEBSERVICE_EXCEPTION = e;
}
public Webservice() {
super(__getWsdlLocation(), WEBSERVICE_QNAME);
}
4.我們需要使用webService去調(diào)用getWebserviceHttpPort這個(gè)方法
找到要調(diào)用的方法名,把參數(shù)傳進(jìn)去(name,password,data),data是要傳輸?shù)臄?shù)據(jù)
Webservice webservice = new Webservice();
WebservicePortType port = webservice.getWebserviceHttpPort();
String result = port.setHtInfo(checCmdUsername, checCmdPassword, data);
System.out.println("result: " + result);
if(result.contains("成功")){
log.info("---------------同步成功!---------------");
return true;
}else {
log.info("---------------同步失?。?--------------");
return false;
}
通過(guò)上述步驟,我們可以輕松地將 WSDL 文件轉(zhuǎn)換為 Java 代碼,并使用生成的類調(diào)用 Web 服務(wù)接口。
無(wú)論是通過(guò)批處理命令還是使用 Maven 插件,CXF 都提供了靈活且強(qiáng)大的工具來(lái)簡(jiǎn)化這一過(guò)程。
總結(jié)
希望本文能幫助你在實(shí)際項(xiàng)目中更高效地進(jìn)行 Web 服務(wù)開(kāi)發(fā)和集成。
以上為個(gè)人經(jīng)驗(yàn),給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 解決springboot整合cxf啟動(dòng)報(bào)錯(cuò),原因是版本問(wèn)題
- 解決springboot整合cxf-jaxrs中json轉(zhuǎn)換的問(wèn)題
- SpringBoot使用CXF集成WebService的方法
- SpringBoot之HttpWebServiceMessageSenderBuilder用法詳解
- SpringBoot調(diào)用WebService接口的實(shí)現(xiàn)示例
- Java(Springboot)項(xiàng)目調(diào)用第三方WebService接口實(shí)現(xiàn)代碼
- SpringBoot調(diào)用WebService接口方法示例代碼
相關(guān)文章
Mybatis實(shí)現(xiàn)分頁(yè)的注意點(diǎn)
Mybatis提供了強(qiáng)大的分頁(yè)攔截實(shí)現(xiàn),可以完美的實(shí)現(xiàn)分功能。下面小編給大家分享小編在使用攔截器給mybatis進(jìn)行分頁(yè)所遇到的問(wèn)題及注意點(diǎn),需要的朋友一起看看吧2017-07-07
java Map轉(zhuǎn)Object與Object轉(zhuǎn)Map實(shí)現(xiàn)代碼
這篇文章主要介紹了 java Map轉(zhuǎn)Object與Object轉(zhuǎn)Map實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02
Spring Boot集成tablesaw插件快速入門示例代碼
Tablesaw是一款Java的數(shù)據(jù)可視化庫(kù),數(shù)據(jù)解析庫(kù),主要用于加載數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行操作(轉(zhuǎn)化,過(guò)濾,匯總等),類比Python中的Pandas庫(kù),本文介紹Spring Boot集成tablesaw插件快速入門Demo,感興趣的朋友一起看看吧2024-06-06
Java如何對(duì)方法進(jìn)行調(diào)用詳解
今天給大家整理了Java如何對(duì)方法進(jìn)行調(diào)用,文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法
下面小編就為大家分享一篇spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02

