我在我的 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 或如何解决此错误,我将不胜感激。
最佳答案
我敢打赌,您的类路径中有 slf4j-api.jar 版本 1.5.0 或更早版本,而 log4j-over-slf4j.jar 版本有更高版本。
关于初始化OpenSaml时java.lang.NoSuchMethodError : org. slf4j.helpers.Util.report(Ljava/lang/String;)V,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863654/