java项目中的异常[java.lang.IllegalAccessError:试图访问字段org.slf4j.impl.StaticLoggerBinder.SINGLETON]

时间:2013-11-20 06:08:16

标签: java

Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
    at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
    at com.erp.utility.Hibernatesession.getSession(Hibernatesession.java:24)
    at com.erp.dao.Country_Dao.getcountryByname(Country_Dao.java:88)
    at com.erp.service.Country_Service.getcountryByname(Country_Service.java:36)
    at com.erp.storedata.Store_Data.main(Store_Data.java:24)

5 个答案:

答案 0 :(得分:5)

使用较新版本的slf4j-api.jar。版本1.5.5和更早版本以及1.5.6及更高版本之间存在重大变化。使用1.5.6之后的版本,该错误应该消失。有关参考,请参阅http://www.slf4j.org/faq.html#IllegalAccessError

答案 1 :(得分:0)

请在您的项目中添加以下文件:

slf4j-log4j12.jar

答案 2 :(得分:0)

参考此链接确实有助于解决您的问题 http://craftingjava.blogspot.in/2012/08/javalangillegalaccesserror.html

答案 3 :(得分:0)

从构建路径中删除文件slf4j-api.jar。

答案 4 :(得分:0)

终于在我的 SpringBoot 应用中解决了这个问题。如果更新版本没有帮助,这可能会有所帮助。有时其他库可能会带来此依赖项的不同版本。这些是步骤:

  1. 通过错误堆栈跟踪找出导致此问题的依赖项
  2. 获取 maven 依赖插件树。使用此树详细信息可了解此库是否作为其他依赖项的一部分出现。就我而言,logback-classiclog4j-over-slf4j 出现了这个问题。他们在spring-boot-starter-web
  3. 之下走到了一起
  4. 在该依赖项中的 <exclusions><exclusion></exclusion></exclusions> 中使用 pom.xml 来处理出现此问题的库。就我而言,它看起来像这样:
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>logback-classic</artifactId>
                    <groupId>ch.qos.logback</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>log4j-over-slf4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

参考文献:
http://www.slf4j.org/faq.html#IllegalAccessError
http://www.slf4j.org/codes.html#multiple_bindings