Quarkus Apache CXF项目使用wsdl2java构建失败如何解决?
解决方案
问题1:Quarkus 2.16.6 + quarkus-cxf 1.7.3 配置项不识别
quarkus-cxf 1.x系列(适配Quarkus 2.x)的代码生成配置键与2.x版本不同,你需要将配置修改为:
quarkus.cxf.codegen.includes=wsdl/*.wsdl
去掉原配置中的wsdl2java部分,这是1.x版本的正确配置键,官方2.x文档的配置规则不适用于1.x版本。
问题2:quarkus-cxf 2.0.0.CR1 构建报NoClassDefFoundError: jakarta/annotation/Resource
quarkus-cxf 2.x系列基于Jakarta EE 9+规范(使用jakarta.*命名空间),而Quarkus 2.16.6仍采用Jakarta EE 8(javax.*命名空间),两者命名空间不兼容导致类找不到问题。解决方式二选一:
- 升级Quarkus版本到3.x(最低3.0.0),Quarkus 3.x全面支持Jakarta EE 9+,与quarkus-cxf 2.x版本完全兼容。
- 若必须保留Quarkus 2.16.6,需继续使用quarkus-cxf 1.x系列版本,同时采用上述1.x对应的配置项。
版本匹配验证
确认pom.xml中依赖版本对应关系:
- Quarkus 2.x → quarkus-cxf 1.x(最新1.x稳定版为1.15.0,可适配Quarkus 2.16.6)
- Quarkus 3.x → quarkus-cxf 2.x+
内容的提问来源于stack exchange,提问作者Nebulous
相关产品推荐
相关产品推荐

