You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache CXF Plugin 3.3.12/3.4.5 在Java 11环境下运行异常如何解决?

Java 11下Apache CXF cxf-codegen-plugin生成代码编译失败解决方案

你遇到的报错核心原因是Java 11移除了原JDK内置的Java EE相关API模块,CXF生成的代码依赖的javax.jws、javax.xml.bind等接口不再默认内置,需要手动引入依赖。很多用户仅给CXF插件添加依赖,忽略了项目编译阶段也需要对应依赖,才会导致已有解决方案无效,按以下步骤配置即可解决:

1. 确认版本兼容性

你当前使用的org.apache.cxf:cxf-codegen-plugin:3.3.12/3.4.5均原生支持Java 11,无需调整插件版本。

2. 添加项目全局编译依赖

在项目pom.xml的<dependencies>节点下添加以下依赖,注意是项目全局依赖,不是仅添加到插件的依赖配置中:

<!-- JAX-WS API 解决javax.jws包缺失问题 -->
<dependency>
    <groupId>javax.xml.ws</groupId>
    <artifactId>jaxws-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.jws</groupId>
    <artifactId>javax.jws-api</artifactId>
    <version>1.1</version>
</dependency>

<!-- JAXB 相关依赖 解决javax.xml.bind包缺失问题 -->
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.1</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0.1</version>
</dependency>

3. 补充插件依赖(可选,仍报错时配置)

如果添加全局依赖后仍有生成阶段的报错,给cxf-codegen-plugin也补充上述依赖即可:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>你的CXF版本号</version>
    <dependencies>
        <!-- 把上面列的所有依赖复制到这里 -->
    </dependencies>
    <executions>
        <!-- 你原有wsdl2java的执行配置保持不变 -->
    </executions>
</plugin>

4. 排查依赖冲突

如果使用Spring Boot等框架,可通过mvn dependency:tree命令排查是否存在不同版本的JAXB/JAX-WS依赖冲突,对冲突包添加<exclusions>排除即可。

内容的提问来源于stack exchange,提问作者mmo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:45:08