【发布时间】:2009-05-06 14:43:21
【问题描述】:
我运行 iPlanet 的 Java 应用程序服务器,其中正在加载 commons-logging-1.0.4.jar。
这很好,直到我的一个应用程序调用 AuthSSLProtocolSocketFactory,这是另一个也使用 commons-logging 的 apache 库。
我将 jar 放在 jvm 类路径上并收到此错误:
Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy....
似乎commons-logger 不喜欢将自己的两个实例加载到不同的类加载器中。我假设应用程序服务器有自己的类加载器,第一次加载它(虽然我找不到任何提到它的应用程序服务器配置),所以当我的应用程序第二次加载它时,它会抛出该异常。
我无法更改 Web 服务器,也无法更改 apache 库。有什么建议吗?
【问题讨论】:
标签: java apache logging classloader