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

Gradle插件io.mateo.cxf-codegen 1.2.0是否支持Spring Boot 3?

关于io.mateo.cxf-codegen 1.2.0与Spring Boot 3的兼容性及JAXB异常解决

io.mateo.cxf-codegen 1.2.0支持Spring Boot 3,但你遇到的javax.xml.bind.JAXBException类找不到问题,根源在于代码生成阶段的依赖配置不匹配——Spring Boot 3和CXF 4.x都基于Jakarta EE API(包前缀为jakarta.*),而错误中引用的是旧Java EE的javax.*包。以下是具体解决步骤:

问题分析

CXF 4.x已完全迁移到Jakarta EE规范,代码生成过程需要依赖Jakarta版本的JAXB API,但你的配置仅将Jakarta JAXB依赖添加到项目的implementation配置中,并未确保插件的代码生成classpath包含这些依赖,导致生成阶段仍在尝试加载旧的javax.xml.bind类。

解决配置

  1. 为插件代码生成任务配置Jakarta依赖
    在Gradle构建脚本中,单独定义一个配置用于插件代码生成的依赖,并将其添加到cxfCodeGen任务的classpath中:

    // 定义专用配置用于代码生成阶段的JAXB依赖
    configurations {
        cxfCodeGen
    }
    
    dependencies {
        // 项目依赖保持不变
        implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
        implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.0'
    
        // 代码生成阶段需要的依赖(包括CXF代码生成器和Jakarta JAXB)
        cxfCodeGen 'org.apache.cxf:cxf-codegen-plugin:4.0.0'
        cxfCodeGen 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
        cxfCodeGen 'org.glassfish.jaxb:jaxb-runtime:4.0.0'
    }
    
    cxfCodeGen {
        cxfVersion = '4.0.0' // 明确指定CXF版本与你使用的一致
        tasks {
            generate {
                wsdl = file('src/main/resources/your.wsdl') // 替换为你的WSDL路径
                outputDir = file("$buildDir/generated-sources/cxf")
                classpath configurations.cxfCodeGen // 将专用配置加入代码生成classpath
            }
        }
    }
    
  2. 强制排除旧javax依赖
    检查项目依赖树,确保没有其他依赖引入旧的javax.xml.bind包。可以通过./gradlew dependencies命令查看依赖树,若发现冲突,在对应依赖上添加排除规则:

    implementation('some-dependency') {
        exclude group: 'javax.xml.bind', module: 'jaxb-api'
    }
    
  3. 验证代码生成配置
    确保WSDL生成的代码使用Jakarta注解而非javax注解。如果WSDL中有自定义绑定文件,需将绑定中的javax.xml.bind替换为jakarta.xml.bind,例如:

    <!-- 替换前 -->
    <xjc:bindings xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
                  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
                  version="2.1">
    
    <!-- 替换后 -->
    <xjc:bindings xmlns:xjc="https://jakarta.ee/xml/ns/jaxb/xjc"
                  xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
                  version="3.0">
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:18:32