1、下载apache-cxf二进制文件

Apache CXF官网下载地址
在这里插入图片描述

解压下载后的压缩包(放在你习惯的位置)
在这里插入图片描述

2、配置apache-cxf环境变量

2.1 新增系统环境变量CXF_HOME

值为刚刚解压的apache cxf文件路径
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bae396720d6c4676be81fa7b3fdb

2.2 将CXF_HOME添加到系统环境变量Path中

%CXF_HOME%\bin

在这里插入图片描述
在这里插入图片描述

3、查看环境变量是否生效

wsdl2java -help

在这里插入图片描述

4、wsdl2java生成代码方法

4.1 方法1(已测试可行)

wsdl2java -encoding utf-8 -d D://temp http://xxx.xxx.xxx.xxx:0000/xxx?wsdl

将在D://temp目录下生成代码。

4.2 方法2(未测试)

在项目的路径下,执行

wsdl2java -p com.sample.client -d src/main/java http://xxx.xxx.xxx.xxx:0000/xxx?wsdl

将在src/main/java/com/example/client目录下生成代码。

5、pom引入jakarta依赖

<!-- Jakarta XML Web Services API -->
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>5.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>2.3.6</version>
            <scope>provided</scope>
        </dependency>
        <!-- Jakarta XML SOAP API -->
        <dependency>
            <groupId>jakarta.xml.soap</groupId>
            <artifactId>jakarta.xml.soap-api</artifactId>
            <version>3.0.0</version>
        </dependency>
        <!-- 实现依赖 -->
        <dependency>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
            <version>3.0.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>4.0.0</version>
        </dependency>

6、调用WSDL接口代码方法

6.1 客户端代码嵌入项目

比如客户端代码生成后的列表如下
在这里插入图片描述
可以将com文件夹直接复制到自己项目的src.main.java下面。
【做好备份,如果不小心改动了客户端代码,可以比较,不用再去生成一遍】
在这里插入图片描述

6.2 调用客户端代码(作为参考,以下是业务调用的wsdl代码,不一定都一样)

找到客户端代码中注解为@WebServiceClient的类,这就是客户端入口类
在这里插入图片描述

以下是使用示例

public static void main(String[] args) {
    Webservice webservice = new Webservice();
    // getWebServicePort获取到对应的@WebService注解的类
    TestWebService testWebService = webservice.getWebServicePort();
    // methodName为方法名,传入接口需要的参数即可,返回值就是接口的返回值
    testWebService.methodName("",...);
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐