【问题标题】:Websphere Application Server Extension Classloader jar conflictWebsphere 应用服务器扩展类加载器 jar 冲突
【发布时间】:2017-05-28 18:40:49
【问题描述】:

我的 WAS 中有 2 个 Web 应用程序。

  1. 我没有B的源代码。
  2. B 用来运行的 .jar 与从中加载扩展类加载器 jar 的路径相同。

因此,这个 jar 在项目 A 中被引用,它阻止我的应用程序运行,因为它与 B 使用的 JAR 冲突。

我无法从那里移动 .jar,因为我没有源代码来手动设置加载该文件的路径。

有没有办法告诉 Websphere 不要为特定的应用程序使用特定的 .jar?

提前致谢。

【问题讨论】:

  • 你确定'B'通过路径明确引用了jar,还是只是从那里隐式加载类?您是否尝试过将其移动到隔离的共享库并从 WAS 配置中为“B”引用它?
  • 是的,它明确引用了该路径:/,您对隔离库有什么想法? ,我现在正在阅读它
  • 只有在将其作为快捷方式复制到该目录并通过正常的类加载使用时,才能将其移动到隔离的共享库。
  • 该死的……还有什么想法吗??
  • 我实际上认为隔离共享库方法可能会起作用,如果我正确理解场景的话。如果您需要 A 选择该 jar 的不同版本,您可以将其放入共享库中,将库设置为使用隔离的类加载器,并将其与 A 关联。这将导致 A 在共享中找到该 jar在尝试委托给扩展类加载器之前的库。

标签: java jar websphere classloader websphere-7


【解决方案1】:

感谢您的信息,我终于通过删除不允许我启动的 te jar 解决了这个问题,然后我启动了我所有的应用程序(A),应用程序(A)使用了他们自己的 jars。然后我在执行时修改了 was 类加载器以重新使用负 jars,并将它们粘贴回有问题的文件夹中,然后启动 (B)。

它作为一个补丁工作,我不建议这样做。这让他们现在开始工作了。但是当 WebSphere 再次重新启动时它将失败,但现在我将获取源代码并修改 jar 依赖项,并在 WAS 中重新安装 B

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2014-02-04
    • 2016-12-06
    相关资源
    最近更新 更多