cxf-codegen-plugin 4.0.0忽略bindingFile配置问题求助
问题解决:CXF 4.0.0升级后绑定配置失效的修复
问题背景
使用cxf-codegen-plugin从WSDL生成代码时,原本在3.5.5版本正常的两项配置——自定义生成代码的包路径、用java.util.Date替换XmlGregorianCalendar——在升级到4.0.0版本后完全失效,生成代码仍使用默认包路径和原日期类型。
核心原因
CXF 4.x版本全面迁移到Jakarta EE规范,替换了原有的Java EE API,导致旧绑定配置中的JAXB命名空间、适配器类路径均不再兼容。
修复步骤
1. 更新绑定文件(bindings.xml)的JAXB命名空间与适配器类
将原绑定文件中的JAXB命名空间替换为Jakarta版本,并更新日期类型适配的工具类:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <jaxb:bindings xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb" xmlns:jaxws="http://cxf.apache.org/jaxws" version="3.0"> <jaxb:bindings schemaLocation="https://url.file.xsd" node="/xsd:schema"> <jaxb:schemaBindings> <jaxb:package name="com.some.package.dto" /> </jaxb:schemaBindings> <jaxb:globalBindings> <jaxb:javaType name="java.util.Date" xmlType="xsd:dateTime" parseMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.parseDateTime" printMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.printDateTime" /> <jaxb:javaType name="java.util.Date" xmlType="xsd:date" parseMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.parseDate" printMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.printDate"/> <jaxb:javaType name="java.util.Date" xmlType="xsd:time" parseMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.parseTime" printMethod="org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter.printTime"/> </jaxb:globalBindings> </jaxb:bindings> </jaxb:bindings>
关键修改点:
- JAXB命名空间从
http://java.sun.com/xml/ns/jaxb改为https://jakarta.ee/xml/ns/jaxb - JAXB版本从
2.1升级为3.0(适配Jakarta EE 9+) - 日期适配器类从
org.apache.cxf.xjc.runtime.DataTypeAdapter改为org.apache.cxf.xjc.runtime.JakartaDataTypeAdapter
2. 验证POM配置的一致性
确保cxf-codegen-plugin和依赖的cxf-xjc-ts版本均为4.0.0(你的现有配置已符合此要求),无需额外修改。
3. 清理并重新生成代码
执行Maven命令清理旧生成文件并重新生成:
mvn clean generate-sources
验证结果
重新生成后,代码将正确使用自定义包路径com.some.package和com.some.package.dto,且所有xsd:dateTime/xsd:date/xsd:time类型均会映射为java.util.Date。
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

