我在java中有一个简单的hibernate程序。这是一个例外,我无法理解。
我的代码是:
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class TestEmployee {
public static void main(String[] args) {
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(Employee.class);
config.configure("hibernate.cfg.xml");
new SchemaExport(config).create(true, true);
}
}
错误是:
SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:197)
at com.Hibernate.chapter1.TestEmployee.main(TestEmployee.java:10)**
注意:我的日食中的AnnotationConfiguration()上有一行。
原因是什么?如何解决?
答案 0 :(得分:1)
错误地给出了您的问题的原因
SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x
SLF4J绑定指定一个工件,例如slf4j-jdk14.jar或slf4j-log4j12.jar,用于将slf4j绑定到底层日志框架,例如java.util.logging和log4j。 混合混合不同版本的slf4j-api.jar和SLF4J绑定可能会导致问题。例如,如果您使用的是slf4j-api-1.7.12.jar,那么您还应该使用slf4j-simple-1.7.12.jar,使用slf4j-simple-1.5.5.jar将无效。
从客户端的角度来看,所有版本的slf4j-api都是兼容的。对于任何N和M,使用slf4j-api-N.jar编译的客户端代码与slf4j-api-M.jar完全匹配。您只需要确保绑定的版本与slf4j-api.jar的版本匹配。您不必担心项目中给定依赖项使用的slf4j-api.jar的版本。您可以随时使用任何版本的slf4j-api.jar,只要slf4j-api.jar的版本及其绑定匹配,您应该没问题。
要使hibernate工作,你可以在项目中添加与hibernate相关的jar文件。它包括名称以&#34; slf4j&#34;开头的罐子。要修复错误,你需要确保所有的slf4j jar都是相同的version.ie(如果你使用的是slf4j-api-1.7.12.jar,那么你也应该使用slf4j-simple-1.7.12.jar,使用slf4j -simple-1.5.5.jar不起作用。)
将所有slf4j罐子更新到最新版本应该解决这个问题,或者你可以检查所有的slf4j罐子并更换有问题的罐子。
下载slf4j的链接位于
之下http://www.slf4j.org/download.html
有关错误和jar的更多信息,请访问