使用wsgen插件生成JAX-WS类时Java版本不匹配问题排查
JAX-WS服务发布Java版本不匹配报错修复
问题背景
- 目标操作:生成WSDL及配套类发布JAX-WS服务,运行自动生成的类时触发版本不匹配报错
- 环境信息:
- IDE版本:Eclipse 2021-12
- 项目配置绑定JDK:
jdk1.8.0_321 - Windows 10系统全局Java版本:Java 8
- Eclipse内置终端检测到的Java版本:Java 17
- 具体报错:服务启动时抛出
java.lang.UnsupportedClassVersionError异常,核心报错信息为com/motorservice/ws/jaxws/GetLibroById类由更高版本Java Runtime编译:class文件版本号61.0(对应Java 17),当前运行的Java Runtime仅支持最高52.0版本的class文件(对应Java 8) - 已留存排查材料:完整异常堆栈、项目
pom.xml配置、WebService接口代码、服务实现类代码、项目结构截图
修复方案
该问题由Maven 3.8.1版本存在的编译时JDK版本识别偏差导致,按以下步骤操作即可修复:
- 将本地Maven版本从3.8.1升级至3.8.4
- 进入项目根目录,执行以下命令清理旧的编译产物,重新完成项目编译:
mvn clean compile
编译完成后重新发布JAX-WS服务即可正常运行,版本不匹配问题不会复现。
内容的提问来源于stack exchange,提问作者Corvas
相关产品推荐
相关产品推荐

