1

我在我的 Maven 项目中使用 OpenSaml。当我尝试使用 DefaultBootstrap 类的变体初始化 OpenSaml 时,我得到以下堆栈跟踪:

    java.lang.NoSuchMethodError: org.slf4j.helpers.Util.report(Ljava/lang/String;)V
    org.apache.log4j.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:47)
    org.apache.log4j.LogManager.getLogger(LogManager.java:42)
    org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
    org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:103)
    org.opensaml.xml.XMLConfigurator.<init>(XMLConfigurator.java:56)
    org.opensaml.xml.XMLConfigurator.<init>(XMLConfigurator.java:73)

我试图做 mvn dependency:tree 来找出从哪里加载不匹配的 SLF4J jar 版本。我还尝试在 mvn.bat 中将 -verbose 选项传递给 Java。这些选项都没有帮助。我已经尝试一一删除我的 pom.xml 中的依赖项。再次,没有运气。如果有人能说明如何找到罪魁祸首 jar 或如何解决此错误,我将不胜感激。

4

2 回答 2

5

我敢打赌,你的类路径中有 slf4j-api.jar 版本 1.5.0 或更早版本,而 log4j-over-slf4j.jar 版本有更高版本。

于 2013-04-08T13:00:16.763 回答
0

我遇到了类似的问题。经过大量探索和调试后,我发现 log4j lib 不兼容。我的自定义构建 jar 具有需要 log4j-1.2.12 或更高版本的 hbase 异步客户端。

于 2013-10-03T17:46:18.720 回答