如何通过URL使用org.apache.cxf的WSDL2JAVA生成Java类?
使用CXF Codegen Plugin从WSDL URL生成Java类
直接将<wsdl>标签的值替换为第三方服务的WSDL完整URL即可,无需特殊配置,以下是完整的Maven插件配置示例:
<build> <plugins> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <goals> <goal>wsdl2java</goal> </goals> <configuration> <!-- 直接填写第三方WSDL的URL --> <wsdl>https://example.com/thirdparty/service?wsdl</wsdl> <!-- 可选:指定生成类的包名 --> <packageName>com.yourcompany.wsclient</packageName> <!-- 可选:指定生成代码的目标目录 --> <outputDir>${project.build.directory}/generated-sources/cxf</outputDir> <!-- 运行时WSDL位置配置:若第三方地址稳定可填原URL,需灵活切换可留空后续代码中动态设置 --> <wsdlLocation>https://example.com/thirdparty/service?wsdl</wsdlLocation> </configuration> </execution> </executions> <!-- 添加CXF核心依赖,避免插件运行时类缺失 --> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.3.0</version> </dependency> </dependencies> </plugin> </plugins> </build>
关键说明
- URL直接兼容:
<wsdl>标签原生支持HTTP/HTTPS格式的远程WSDL地址,插件会自动从网络拉取文件并生成代码。 - 网络环境要求:确保构建机器能访问目标WSDL URL,内网环境需配置Maven代理(在
settings.xml中添加代理节点)。 - 生成代码管理:默认生成的代码会放在
target/generated-sources/cxf,Maven会自动将该目录识别为源码目录,无需额外配置。
运行以下Maven命令触发代码生成:
mvn generate-sources
内容的提问来源于stack exchange,提问作者Hikaru Shindo
相关产品推荐
相关产品推荐

