java - Websphere 应用程序加载 jars - 类路径冲突 - MQ 服务器升级
问题描述
我们最近为 WebSphere 中的应用程序升级了 MQ 服务器。我们目前正在使用com.ibm.mq.allclient-9.1.0.2.jar
与 MQ 服务器版本兼容的版本。然而,RC=2059;AMQ9503
错误。相同的 jar 在 Jboss 服务器中运行良好,但在 Websphere 8X 版本中出现上述错误。我怀疑具有类似 jar 的 Websphere 运行时会导致此问题。我们的应用程序类加载器属性是“父加载器优先”,所以我什至尝试将这个 jar 定义为类路径中的启动 jar,即使这样也没有用。有没有办法检查加载到 Websphere 中的应用程序中的所有 jar?或者无论如何我可以解决这个问题?
解决方案
基于以前的尝试和错误尝试的回答尝试:
有没有办法检查加载到 Websphere 中的应用程序中的所有 jar?
您可以通过单击查看加载的类
应用程序 > 企业应用程序 >(已部署的应用程序)> 管理模块 >(您的 Web 应用程序模块)> 类加载器查看器
这应该为您提供一个页面,您可以展开模块以查看其加载的类。如果您没有此视图,则可能必须通过将复选框设置为来激活类加载器查看器服务
服务器 > 应用程序服务器 >(您的应用程序服务器,可能是 server1)> 类加载器查看器服务。
或者,您也可以将类写入 native_stdout.log,方法是通过检查激活使用的类加载器的日志记录
应用程序服务器 > server1 > 进程定义 > Java 虚拟机,选项“详细类加载”
并重新启动服务器。
或者无论如何我可以解决这个问题?
您可以尝试将类加载顺序设置为“最后一个父级”以强制 websphere 首先加载您的 jar(如果尚未完成)。有多个地方有此设置,请参阅
应用程序 > +应用程序类型 > WebSphere 企业应用程序 >(部署的应用程序)> 类加载和更新检测
和
企业应用程序 >(已部署的应用程序)> 管理模块 >(您的 Web 模块),请参阅下拉菜单“类加载器顺序”
并且
应用程序服务器>(您的应用程序服务器,可能是 server1)> 类加载器策略“Single”,然后下拉“类加载模式”
(我希望这些选项或经验之一是有帮助的,其他选项可能包括将有问题的 jar 设置为共享库)
推荐阅读
- docker - 如何阻止 Visual Studio 2017 在调试模式下从 docker 容器打印“线程已退出”消息?
- java - Spring - ServletWebRequest.getHeaderValues() 不返回所有标头
- tomcat - 我无法使用我的域 IP 地址在浏览器中加载 tomcat
- javascript - 在 Chrome 中的指针锁定期间防止鼠标滚轮事件
- r - 我无法理解 R 中如何匹配 2 个向量(因子和数字类型)?
- django - 模板标签中的 Django 用户组与单个数据库命中
- java - 在 onDraw 中调用 canvas.drawCircle 时应用程序崩溃
- css - 如何重新格式化这个 css 代码来做相反的事情?
- java - WireMock - 包含 JSON 属性的请求的存根
- html - HTML 表格页脚无法跨越所有列