Java 检测到log4j-over-slf4j.jar和slf4j-log4j12.jar

Java 检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,java,jar,log4j,slf4j,geotools,Java,Jar,Log4j,Slf4j,Geotools,我使用了geotools库,在我的项目中,我将所有依赖项添加到buildpath中 从下载库并将其添加到库中,当我尝试执行应用程序时,出现以下错误 SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. SLF4J: See also http://www.slf4j.org/codes.html#log4jDele

我使用了geotools库,在我的项目中,我将所有依赖项添加到buildpath中

从下载库并将其添加到库中,当我尝试执行应用程序时,出现以下错误

    SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. 
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.hsqldb.DatabaseManager.filePathToKey(Unknown Source)
    at org.hsqldb.DatabaseManager.getDatabaseObject(Unknown Source)
    at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
    at org.hsqldb.DatabaseManager.newSession(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
    at org.hsqldb.jdbc.JDBCDataSource.getConnection(Unknown Source)
    at org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3529)
    at org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:437)
    at org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:114)
    at org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:218)
    at org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:100)
    at org.geotools.util.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:808)
    at org.geotools.util.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:631)
    at org.geotools.util.factory.FactoryRegistry.lambda$getFactories$0(FactoryRegistry.java:300)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
    at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
    at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
    at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
    at org.geotools.util.LazySet.isEmpty(LazySet.java:98)
    at org.geotools.referencing.factory.ManyAuthoritiesFactory.<init>(ManyAuthoritiesFactory.java:115)
    at org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:114)
    at org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:67)
    at org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:253)
    at org.geotools.referencing.CRS.decode(CRS.java:533)
    at org.geotools.referencing.CRS.decode(CRS.java:447)
    at org.geotools.dev.SelectApp.fromBytes(SelectApp.java:153)
    at org.geotools.dev.SelectApp.selectAll(SelectApp.java:81)
    at org.geotools.dev.SelectApp.main(SelectApp.java:96)
Caused by: java.lang.RuntimeException: Failed to instantiate Log4j Logger
    at org.hsqldb.lib.FrameworkLogger.<init>(Unknown Source)
    at org.hsqldb.lib.FrameworkLogger.getLog(Unknown Source)
    at org.hsqldb.lib.FrameworkLogger.getLog(Unknown Source)
    at org.hsqldb.lib.FileUtil.<clinit>(Unknown Source)
    ... 33 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    ... 37 more
Caused by: java.lang.ExceptionInInitializerError
    at org.apache.log4j.Logger.getLogger(Logger.java:39)
    ... 41 more
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
    at org.apache.log4j.Log4jLoggerFactory.<clinit>(Log4jLoggerFactory.java:49)
    ... 42 more
SLF4J:在类路径上检测到log4j-over-SLF4J.jar和SLF4J-log4j12.jar,抢占StackOverflowerError。
SLF4J:另见http://www.slf4j.org/codes.html#log4jDelegationLoop 更多细节。
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于org.hsqldb.DatabaseManager.filePathToKey(未知源)
位于org.hsqldb.DatabaseManager.getDatabaseObject(未知源)
位于org.hsqldb.DatabaseManager.getDatabase(未知源)
位于org.hsqldb.DatabaseManager.newSession(未知来源)
位于org.hsqldb.jdbc.JDBCConnection。(来源未知)
位于org.hsqldb.jdbc.JDBCDriver.getConnection(未知源)
位于org.hsqldb.jdbc.JDBCDataSource.getConnection(未知源)
位于org.hsqldb.jdbc.JDBCDataSource.getConnection(未知源)
在org.geotools.referencing.factory.epsg.DirectEpsgFactory.getConnection(DirectEpsgFactory.java:3529)
位于org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:437)
位于org.geotools.reference.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:114)
位于org.geotools.reference.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:218)
位于org.geotools.reference.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:100)
位于org.geotools.util.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:808)
位于org.geotools.util.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:631)
位于org.geotools.util.factory.FactoryRegistry.lambda$GetFactorys$0(FactoryRegistry.java:300)
位于java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
位于java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
位于java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
位于java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
位于java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161)
位于java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
位于java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
位于org.geotools.util.LazySet.isEmpty(LazySet.java:98)
位于org.geotools.reference.factory.ManyAuthoritiesFactory.(ManyAuthoritiesFactory.java:115)
位于org.geotools.reference.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:114)
位于org.geotools.reference.DefaultAuthorityFactory(DefaultAuthorityFactory.java:67)
位于org.geotools.reference.CRS.getAuthorityFactory(CRS.java:253)
在org.geotools.reference.CRS.decode(CRS.java:533)上
在org.geotools.reference.CRS.decode(CRS.java:447)上
位于org.geotools.dev.SelectApp.fromBytes(SelectApp.java:153)
位于org.geotools.dev.SelectApp.selectAll(SelectApp.java:81)
位于org.geotools.dev.SelectApp.main(SelectApp.java:96)
原因:java.lang.RuntimeException:未能实例化Log4j记录器
位于org.hsqldb.lib.FrameworkLogger。(来源未知)
位于org.hsqldb.lib.FrameworkLogger.getLog(未知源)
位于org.hsqldb.lib.FrameworkLogger.getLog(未知源)
位于org.hsqldb.lib.FileUtil。(来源未知)
... 33多
原因:java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
... 37多
原因:java.lang.ExceptionInInitializeError
位于org.apache.log4j.Logger.getLogger(Logger.java:39)
... 41多
原因:java.lang.IllegalStateException:在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,抢占StackOverflower错误。另见http://www.slf4j.org/codes.html#log4jDelegationLoop 更多细节。
位于org.apache.log4j.Log4jLoggerFactory(Log4jLoggerFactory.java:49)
... 42多
我已经试过了

正如本文所建议的,我已经添加了除外条款。仍然有同样的错误

我对它们没有任何依赖关系,即使我删除了两个jar文件,错误仍然是一样的

我的Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
           <modelVersion>4.0.0</modelVersion>
           <groupId>org.geotools</groupId>
           <artifactId>tutorial</artifactId>
           <version>0.0.1-SNAPSHOT</version>
           <packaging>jar</packaging>
           <name>tutorial</name>
           <url>http://maven.apache.org</url>
           <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <geotools.version>24-SNAPSHOT</geotools.version>
           </properties>
           <dependencies>
              <dependency>
                 <groupId>junit</groupId>
                 <artifactId>junit</artifactId>
                 <version>4.11</version>
                 <scope>test</scope>
              </dependency>
              <dependency>
                 <groupId>org.geotools</groupId>
                 <artifactId>gt-shapefile</artifactId>
                 <version>${geotools.version}</version>
              </dependency>
              <dependency>
                 <groupId>org.geotools</groupId>
                 <artifactId>gt-swing</artifactId>
                 <version>${geotools.version}</version>
              </dependency>
              <!-- https://mvnrepository.com/artifact/log4j/log4j -->
              <!-- <dependency>
                 <groupId>log4j</groupId>
                 <artifactId>log4j</artifactId>
                 <version>1.2.17</version>
              </dependency> -->
           </dependencies>
           <repositories>
              <repository>
                 <id>osgeo</id>
                 <name>OSGeo Release Repository</name>
                 <url>https://repo.osgeo.org/repository/release/</url>
                 <snapshots>
                    <enabled>false</enabled>
                 </snapshots>
                 <releases>
                    <enabled>true</enabled>
                 </releases>
              </repository>
              <repository>
                 <id>osgeo-snapshot</id>
                 <name>OSGeo Snapshot Repository</name>
                 <url>https://repo.osgeo.org/repository/snapshot/</url>
                 <snapshots>
                    <enabled>true</enabled>
                 </snapshots>
                 <releases>
                    <enabled>false</enabled>
                 </releases>
              </repository>
           </repositories>
           <exclusions>
              <exclusion>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                 <groupId>log4j</groupId>
                 <artifactId>log4j</artifactId>
              </exclusion>
           </exclusions>
           <build>
              <plugins>
                 <plugin>
                    <inherited>true</inherited>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                       <source>1.8</source>
                       <target>1.8</target>
                    </configuration>
                 </plugin>
              </plugins>
           </build>
        </project>

4.0.0
org.geotools
辅导的
0.0.1-快照
罐子
辅导的
http://maven.apache.org
UTF-8
24小时快照
朱尼特
朱尼特
4.11
测验
org.geotools
gt形文件
${geotools.version}
org.geotools
燃气轮机回转
${geotools.version}
奥斯吉
OSGeo发布库
https://repo.osgeo.org/repository/release/
错误的
符合事实的
osgeo快照
OSGeo快照存储库
https://repo.osgeo.org/repository/snapshot/
符合事实的
错误的