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

Websphere 9.0.0.11使用Java1.8部署WAR包报错,旧WAR可正常运行

问题根因

该报错是WebSphere 9.0.0.11内置的类扫描组件依赖的ASM版本过低,无法识别高版本JDK编译的Class文件导致的:

  • WebSphere 9.0.0.11自带的ASM版本仅支持解析Java 8及以下版本编译的Class文件
  • 本次打包的WAR中包含的org.eclipse.core.resources-3.14.0.jar、org.eclipse.equinox.app-1.6.0.jar两个依赖包内的部分Class是使用Java 9及以上版本编译的,触发了ASM解析时的非法参数异常
  • Tomcat的类扫描组件兼容性更高,因此相同WAR包可在本地Tomcat正常运行;你本次未修改代码的前提下出现该问题,大概率是Maven依赖传递规则自动拉取了这两个高版本的第三方依赖,可对比新旧WAR包的WEB-INF/lib目录差异验证该判断。

解决方案

方案1:排除不需要的依赖

这两个Eclipse相关的依赖绝大多数场景下都是不必要的传递性依赖,你可以在pom.xml对应的父依赖下添加排除规则,示例配置如下:

<exclusions>
    <exclusion>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.resources</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.equinox.app</artifactId>
    </exclusion>
</exclusions>

排除后重新打包部署即可。

方案2:跳过WebSphere对指定JAR的扫描

如果你的业务确实需要使用这两个依赖包,可以修改WebSphere的JVM参数,跳过对这两个JAR包的类扫描:

  • 登录WebSphere控制台,依次进入服务器 > 服务器类型 > WebSphere Application Server > server1 > 进程定义 > Java虚拟机
  • 在通用JVM参数栏添加配置:-Dcom.ibm.ws.ecs.exclude.jars=org.eclipse.core.resources-3.14.0.jar,org.eclipse.equinox.app-1.6.0.jar
  • 保存配置后重启服务器,重新部署WAR包即可

方案3:升级WebSphere补丁版本

IBM在后续补丁包中已经升级了内置的ASM版本,将WebSphere升级到9.0.0.12及以上版本也可以解决该兼容性问题。

内容的提问来源于stack exchange,提问作者B.Ayaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:48:03