最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot使用CXF進(jìn)行WSDL轉(zhuǎn)換及WebService服務(wù)調(diào)用過(guò)程

 更新時(shí)間:2025年09月24日 10:00:49   作者:筱詩(shī)詩(shī)  
本文介紹如何利用Apache CXF將WSDL轉(zhuǎn)換為Java代碼,提供bat命令和Maven插件兩種方法,并詳解生成類的屬性(如name、targetNamespace)及調(diào)用接口的參數(shù)傳遞方式,助力高效集成Web服務(wù)

在開(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis實(shí)現(xiàn)分頁(yè)的注意點(diǎ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)代碼

    這篇文章主要介紹了 java Map轉(zhuǎn)Object與Object轉(zhuǎn)Map實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring Boot集成tablesaw插件快速入門示例代碼

    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設(shè)計(jì)模式之抽象工廠模式詳解

    Java設(shè)計(jì)模式之抽象工廠模式詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之抽象工廠模式詳解,抽象工廠是一種為訪問(wèn)類提供一個(gè)創(chuàng)建一組相關(guān)或相互依賴對(duì)象的接口,且訪問(wèn)類無(wú)須指定所要產(chǎn)品的具體類就能得到同族的、不同等級(jí)的產(chǎn)品的模式結(jié)構(gòu),需要的朋友可以參考下
    2023-09-09
  • 基于Java回顧之多線程同步的使用詳解

    基于Java回顧之多線程同步的使用詳解

    在這篇文章里,我們關(guān)注線程同步的話題。這是比多線程更復(fù)雜,稍不留意,我們就會(huì)“掉到坑里”,而且和單線程程序不同,多線程的錯(cuò)誤是否每次都出現(xiàn),也是不固定的,這給調(diào)試也帶來(lái)了很大的挑戰(zhàn)
    2013-05-05
  • Java如何對(duì)方法進(jìn)行調(diào)用詳解

    Java如何對(duì)方法進(jìn)行調(diào)用詳解

    今天給大家整理了Java如何對(duì)方法進(jìn)行調(diào)用,文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • SpringCloud Feign客戶端使用流程

    SpringCloud Feign客戶端使用流程

    在springcloud中,openfeign是取代了feign作為負(fù)載均衡組件的,feign最早是netflix提供的,他是一個(gè)輕量級(jí)的支持RESTful的http服務(wù)調(diào)用框架,內(nèi)置了ribbon,而ribbon可以提供負(fù)載均衡機(jī)制,因此feign可以作為一個(gè)負(fù)載均衡的遠(yuǎn)程服務(wù)調(diào)用框架使用
    2023-01-01
  • spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法

    下面小編就為大家分享一篇spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁(yè)操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Java之@TableField注解的用法解析

    Java之@TableField注解的用法解析

    MyBatis-Plus的@TableField注解用于控制實(shí)體類字段與數(shù)據(jù)庫(kù)表字段的映射關(guān)系,支持字段映射、忽略、插入和更新控制、自定義填充策略和類型轉(zhuǎn)換等
    2025-01-01
  • ActiveMQ簡(jiǎn)單入門(新手必看篇)

    ActiveMQ簡(jiǎn)單入門(新手必看篇)

    下面小編就為大家?guī)?lái)一篇ActiveMQ簡(jiǎn)單入門(新手必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論

井冈山市| 凌源市| 建始县| 旺苍县| 连城县| 新竹县| 常宁市| 遵化市| 中西区| 石台县| 瑞昌市| 永宁县| 桦川县| 上蔡县| 莎车县| 鸡东县| 璧山县| 浦北县| 高雄市| 南投市| 弥渡县| 修武县| 龙州县| 元江| 通江县| 汝城县| 千阳县| 都匀市| 红安县| 龙山县| 兴化市| 伊宁县| 山东省| 洛浦县| 昌江| 宁陵县| 正镶白旗| 同心县| 定南县| 习水县| 永和县|