我创建了一个使用Hikari CP的应用程序,并且此应用程序的用户遇到此错误:
java.lang.ExceptionInInitializerError
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 com.zaxxer.hikari.AbstractHikariConfig.<clinit>(AbstractHikariConfig.java:43) ~[?:?]
Caused by: java.lang.UnsupportedOperationException: This code should have never made it into the jar
at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:63) ~[?:?]
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:44) ~[?:?]
我没有包含任何代码,因为我不确定哪些代码与此相关,问题是该错误是由应用程序的用户遇到的,我无法在我的末尾复制问题因为它对我和其他一些人来说非常有效,因此我不确定这个特定用户可能会导致什么。当我使用HikariCP创建SQLite连接时,它似乎正在发生。
jar是使用Maven创建的,相关的依赖项是:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.4.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.13</version>
</dependency>
答案 0 :(得分:0)
来自SLF4J website:
请注意,启用SLF4J的库意味着只添加一个强制依赖项,即slf4j-api.jar。如果在类路径上找不到绑定,则SLF4J将默认为无操作实现。
我假设因为两个类具有相同的名称(StaticLoggerBinder),所以api版本首先加阴影。
要解决此问题,请尝试将slf4j-simple
依赖项置于slf4j-api
依赖项之上。