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

Websphere 8.5.5.20补丁后REST接口抛javax.ws.rs.WebApplicationException咨询

根因说明

WebSphere 8.5.5.20补丁升级了内置的JAX-RS实现包版本,默认情况下WebSphere会优先加载服务器自带的类库,你应用中打包的jsr311-api 1.1.1、jersey-server 1.8和服务器内置的同类型包产生类加载冲突,是本次接口报错的核心原因。

解决方案

1. 修改应用类加载顺序(优先选择,操作成本最低)

操作步骤:

  • 登录WebSphere管理控制台,依次进入「应用程序 > 应用程序类型 > WebSphere 企业应用程序」,点击目标应用进入配置页
  • 找到「类加载和更新检测」选项进入
  • 类加载顺序选择先加载应用类加载器的类,再加载父类加载器的类(父类最后)
  • 保存配置后重启应用即可验证

2. 单独禁用WebSphere内置JAX-RS实现

如果你的应用有其他依赖需要保持父类优先的加载规则,可以单独关闭内置JAX-RS特性:

  • 进入控制台「服务器 > 服务器类型 > WebSphere Application Server > 目标服务器 > 进程定义 > Java 虚拟机」
  • 在「通用JVM参数」中添加配置:
-Dcom.ibm.websphere.jaxrs.disableIBMJAXRS=true
  • 保存配置后重启服务器和应用

3. 调整依赖scope使用服务器内置JAX-RS实现

如果你的应用代码可以兼容WebSphere内置的JAX-RS版本,修改pom.xml中相关依赖的scope为provided,避免重复打包冲突:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.8</version>
    <scope>provided</scope>
</dependency>

4. 升级应用Jersey版本适配服务器版本

如果以上方案都不满足业务需求,可将应用的Jersey 1.x版本升级到和WebSphere 8.5.5.20内置版本兼容的最新1.x版本,消除版本差异导致的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:03