使用hibernate的SchemaExport自动创建数据表时,抛出Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory错误。
问题原因:jar文件版本冲突
|
类 org.slf4j.impl.StaticLoggerBinder在slf4j-api 中是类的公有静态变量: public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
而在slf4j-log4j12(slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar其中之一)中却是私有变量: private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
解决办法:导入同版本的slf4j-api-1.5.6.jar 和slf4j-log4j12-1.5.6.jar 即可。 |
本文解决了一个在使用Hibernate自动创建数据表时遇到的版本冲突问题,具体表现为非法访问错误。原因是slf4j-api与slf4j-log4j12等日志实现之间的StaticLoggerBinder字段可见性不一致导致。
2592

被折叠的 条评论
为什么被折叠?



