如何在WebSphere 8.5中添加使用独立类加载器的共享库?
在WebSphere 8.5中添加共享库解决JAX-WS依赖问题
我之前处理过类似的JAX-WS库冲突问题,在WebSphere 8.5里配置共享库是解决这类依赖冲突的常用方案,下面是我亲测有效的一步步操作流程:
第一步:创建自定义共享库
- 登录WAS 8.5的管理控制台(默认地址一般是
https://<服务器IP>:9043/ibm/console) - 在左侧导航栏展开 环境 选项,点击 共享库
- 在页面右上角的「作用域」下拉菜单中,根据需求选择合适的作用域:
- 如果要让这个库对单台服务器上的所有应用生效,选服务器级别;如果只针对你的目标应用生效,选对应应用的作用域
- 点击 新建,填写共享库的基础信息:
- 名称:起一个清晰好记的名字,比如
Custom-JAX-WS-Libraries - 描述:简单标注用途,比如「用于解决JAX-WS依赖冲突的自定义库」
- 类路径:点击 添加 按钮,选择存放JAX-WS相关jar包的服务器本地路径(确保WAS服务账号有访问该路径的权限)
- 勾选「使用服务器类加载器加载此库」,这能让服务器优先加载你指定的jar包,避免和WAS自带的库冲突
- 名称:起一个清晰好记的名字,比如
- 点击 确定 保存配置
第二步:将共享库关联到目标应用
- 在左侧导航栏展开 应用程序 -> 应用程序类型 -> WebSphere企业应用程序
- 在应用列表中找到你的问题应用,点击应用名称进入详情页面
- 在「应用程序部署描述符」区域,点击 类加载和更新检测
- 滚动到页面下方的「共享库引用」板块,点击 添加
- 在弹出的选择窗口中,选中你刚才创建的共享库,点击 确定
- 回到应用详情页,点击页面顶部的 保存到主配置,确保修改生效
第三步:重启应用(或服务器)
- 回到「WebSphere企业应用程序」列表,选中你的应用,先点击 停止,待应用停止后再点击 启动
- 如果你设置的是服务器级别的共享库,可能需要重启整个WAS服务器才能让配置完全生效
额外注意事项
如果你的应用依然存在依赖冲突问题,建议在「类加载和更新检测」页面中,将应用的类加载策略设置为 父类加载器最后。这样应用会优先加载共享库中的jar包,而不是WAS自带的系统库,能有效规避大部分JAX-WS相关的版本冲突问题。
内容的提问来源于stack exchange,提问作者Raul Eduardo Perez
相关产品推荐
相关产品推荐

