使用Apache CXF cxf-codegen-plugin生成webservice客户端jar包

本文介绍使用ApacheCXF通过两种方法生成Web服务客户端代码的过程。第一种方法是在ApacheCXF官网下载并使用wsdl2java命令直接生成代码。第二种方法是通过Maven工程和cxf-codegen-plugin插件生成客户端代码,并最终打包成jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

使用Apache CXF生成客户端代码有两种方式

方式一

在官网http://cxf.apache.org下载Apache CXF后,cmd进入目录apache-cxf-3.2.13\bin, 输入命令

wsdl2java http://localhost:8888/HelloService?wsdl

即可生成客户端代码。

方式二

如果你希望将客户端打成jar包,可以用CXF的maven plugin。IDEA为例打包步骤如下:

1. 新建maven工程,引入plugin依赖

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.7.2</version>
                <configuration>
                    <forkMode>once</forkMode>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                    <systemProperties>
                        <property>
                            <name>net.sourceforge.cobertura.datafile</name>
                            <value>target/cobertura/cobertura.ser</value>
                        </property>
                    </systemProperties>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>3.2.13</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>${project.basedir}/src/main/java</sourceRoot>
                            <encoding>UTF-8</encoding>
                            <wsdlOptions>
                                <!-- 指定wsdl文件 -->
                                <wsdlOption>
                                    <wsdl>http://localhost:8888/HelloService?wsdl</wsdl>
                                </wsdlOption>
<!--                                <wsdlOption>-->
<!--                                    <wsdl>${basedir}/src/main/resources/ccCoding.wsdl</wsdl>-->
<!--                                </wsdlOption>-->
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 2. 直接点击maven install,即可生成客户端jar包

客户端调用方式

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://localhost:8888/HelloService?wsdl");
        QName qName = new QName("http://service.example.com/", "HelloServiceImplService");
        HelloServiceImplService service = new HelloServiceImplService(url, qName);
        HelloService helloService = service.getPort(HelloService.class);
        String result = helloService.sayHelloMethod("Rocky", 25);
        System.out.println(result);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值