我运行 iPlanet 的 Java 应用程序服务器,其中的内容正在加载commons-logging-1.0.4.jar
。
这很好,直到我的一个应用程序调用AuthSSLProtocolSocketFactory
它是另一个也使用commons-logging
.
我将 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
不喜欢在不同的类加载器中加载自身的两个实例。我假设应用程序服务器有自己的类加载器,它第一次加载它(虽然我找不到任何提到它的 appserver 配置)所以当我的应用程序第二次加载它时它会抛出该异常。
我无法更改 Web 服务器,也无法更改 apache 库。建议?