![](/img/trans.png)
[英]java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory in SpringBoot
[英]java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
我在運行 GWT 應用程序時遇到此錯誤。
我的類路徑中有這些 jar 文件: slf4j-api
& slf4j-log4j12
知道可能是什么原因嗎?
此問題是由於 slf4j-log4j12 jar 中的更改造成的。 從 1.5.6 版開始,它不允許訪問字段 org.slf4j.impl.StaticLoggerBinder.SINGLETON。
要解決它,請為 slf4j-api 和 slf4j-log4j12 使用最新的 jars(或至少版本 1.5.6 以上)。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
終於在我的 SpringBoot 應用程序中解決了這個問題。 如果更新版本沒有幫助,這可能會有所幫助。 有時其他庫可能會帶來此依賴項的不同版本。 這些是步驟:
logback-classic
和log4j-over-slf4j
出現了這個問題。 他們在spring-boot-starter-web
下走到了一起<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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.