java - 加载 slf4j LoggerFactory 时,websphere 类加载器给出 java.lang.LinkageError

标签 java websphere classloader slf4j

[我最初将其发布在 websphere 论坛机器人上,但没有看到及时的回复。我在这里重新发布,内容稍微多一点]

问题

我向企业应用程序(即“.ear”)添加了一个 jar(称为“Foo.jar”),创建了 list 条目等,令我惊讶的是,当我的 EJB 实例化 FooClient 时,websphere 在 org.slf4j.LoggerFactory 上抛出了 java.lang.LinkageError

我已经在跟踪中添加了类加载器调试,但没有发现太多。我希望看到“WAS 实际上在哪里找到 slf4j 类”。以下是条目:

[9/24/14 16:23:01:417 CDT] 00000067 CompoundClass >  loadClass org.slf4j.LoggerFactory this=com.ibm.ws.classloader.CompoundClassLoader@5c2687e4[app:yourappServer] Entry

[9/24/14 16:23:01:418 CDT] 00000067 CompoundClass <  loadClass org.slf4j.LoggerFactory java.lang.LinkageError: org.slf4j.LoggerFactory Exit

我检查了我的 was8 目录,发现了 slf4j jar 的各种副本/版本。

/plugins
        /osgiappbundles/com.ibm.ws.osgi.applications/aries/slf4j-api-1.5.6.jar
        /slf4j-api-1.5.6.jar

/profiles/AppSrv01
        /installedConnectors/activemq-rar-5.9.1.rar/slf4j-api-1.7.5.jar
        /wstemp
                /appdepl14769b0c2de/slf4j-api-1.7.5.jar3472682177251273594.tmp
                /appdepl14769b0c2de/slf4j-api-1.7.5.jar7922145899030561292.tmp

另一位开发人员告诉我“你将无法使用 Foo.jar”,因为我们需要放置“Parent_last”,而目前该项目还没有这个选项。

其他上下文

  • Websphere 8.0.0.7
  • RAD 9

问题

  • java.lang.LinkageError:这是“类加载器问题”还是“类版本错误”问题?根据我对“类版本错误”问题的经验,我通常会看到“NoSuchMethod”错误,而不是实例化异常。

  • 还有其他办法解决这个问题吗?

更新

我读了一些有关共享库和“隔离类加载器”的内容,这似乎是解决方案。然而,由于某种原因,我的 RAD/Eclipse UI 似乎已损坏,因为当我将共享库与应用程序或模块关联时,它不会“保存”。随后它就消失了。

提前致谢

最佳答案

如果您想使用 websphere 中已有的较新库,parent_last 是最佳选择

如果没有,请从应用程序中删除 slf4j jar,并使用供应商提供的版本

关于java - 加载 slf4j LoggerFactory 时,websphere 类加载器给出 java.lang.LinkageError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042322/

相关文章:

Java 8 列表到现有 map

Java junit 断言抛出了异常

java - 如何在 Google Drive API 中注销/更改当前的 google 帐户?

java - WebSphere 中 Tomcat 的 BeanFactory 模拟

java - 容器管理的持久性和创建临时表的存储过程

java - 如何在Objectify中进行级联删除?

primefaces - WELD-001303 : No active contexts for scope type javax. Enterprise.context.SessionScoped on Websphere

java - 从源代码: Codec does not exist构建lucene

java - Install4j:Windows 安装程序显示 java.lang.LinkageError:ClassCastException

java - 在测试中启动 minidfscluster