[SPRING] java.lang.NoSuchMethodError : org.slf4j.spi.LocationAwareLogger.log
SPRINGjava.lang.NoSuchMethodError : org.slf4j.spi.LocationAwareLogger.log
내 응용 프로그램을 배포하는 동안이 오류가 발생합니다.
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Ma
rker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocat
ionAwareLog.java:141)
at org.springframework.web.context.ContextLoader.initWebApplicationConte
xt(ContextLoader.java:272)
나는 maven을 사용하고 있습니다. 그리고 이것은 pom.xml입니다.
<properties>
<!-- Using this GWT version -->
<gwt.version>2.4.0</gwt.version>
<!-- Using this Jackrabbit version -->
<jcr.version>1.6.5</jcr.version>
<!-- Using this Spring version -->
<spring.version>3.1.0.RELEASE</spring.version>
<spring.security.version>3.1.0.RELEASE</spring.security.version>
<!-- Apache CXF -->
<cxf.version>2.5.1</cxf.version>
<!-- Apache POI -->
<poi.version>3.8</poi.version>
<!-- Milton WebDAV -->
<milton.version>1.8.1.3</milton.version>
<!-- Tell the compiler we can use 1.6 -->
<java.compiler>1.6</java.compiler>
<!-- Default source encoding ${default.encoding} -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<!-- Needed for org.jbpm & org.hibernate-->
<repository>
<id>jboss.org</id>
<name>JBoss Maven Repository</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</repository>
<!-- Needed for ROME -->
<repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
</repository>
<!-- Needed for Gson -->
<repository>
<id>gson</id>
<name>GSon Repository for Maven</name>
<url>http://google-gson.googlecode.com/svn/mavenrepo</url>
</repository>
<!-- Needed for Milton -->
<repository>
<id>ettrema-repo</id>
<name>Milto WebDAV</name>
<url>http://milton.io/maven</url>
</repository>
<!-- OpenKM repository -->
<repository>
<id>openkm.com</id>
<name>OpenKM Maven Reporitory</name>
<url>http://maven.openkm.com/maven2</url>
</repository>
<!-- StringTree repository -->
<repository>
<id>StringTree</id>
<name>String Tree</name>
<url>http://stringtree.org/repository/</url>
</repository>
<!-- Video conversion and resolution change -->
<repository>
<id>xuggle repo</id>
<name>Xuggle</name>
<url>http://xuggle.googlecode.com/svn/trunk/repo/share/java/</url>
</repository>
</repositories>
<dependencies>
<!-- Test units -->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.6</version>
<scope>test</scope>
</dependency>
<!-- Provided libraries -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- JBoss already have its own log4j.jar -->
<!-- http://www.coderanch.com/t/91054/JBoss/log-j-messages-JBoss-log -->
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>7.0.27</version>
<scope>provided</scope>
</dependency>
<!-- Misc -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>de.schlichtherle</groupId>
<artifactId>truezip</artifactId>
<version>6.8.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>dnsjava</groupId>
<artifactId>dnsjava</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<!-- Base64 encoding / decoding -->
<!-- http://www.techiegyan.com/?p=333 -->
<!-- Downgraded to 1.3 due to GWT 2.2 dependency -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.2</version>
</dependency>
<!-- Jackrabbit -->
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-core</artifactId>
<version>${jcr.version}</version>
<exclusions>
<!-- We want to use the last POI version -->
<exclusion>
<groupId>poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
<!-- Hibernate Search uses a more recent version of Lucene-->
<exclusion>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-text-extractors</artifactId>
<version>${jcr.version}</version>
<exclusions>
<exclusion>
<groupId>pdfbox</groupId>
<artifactId>pdfbox</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Twitter4j -->
<dependency>
<groupId>net.homeip.yusuke</groupId>
<artifactId>twitter4j</artifactId>
<version>2.0.10</version>
</dependency>
<!-- ROME -->
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
<version>1.0</version>
</dependency>
<!-- JasperReports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.6</version>
<exclusions>
<!-- Avoid java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.Compiler -->
<!-- See http://groups.google.com/group/google-web-toolkit/browse_thread/thread/49e20fb5185b34ce/75436f95e29dce85?hl=en -->
<exclusion>
<groupId>eclipse</groupId>
<artifactId>jdtcore</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all-minimal</artifactId>
<version>1.5.8</version>
</dependency>
<!-- Workflow library from JBoss -->
<dependency>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm-jpdl</artifactId>
<version>3.3.1.OKM</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
</exclusion>
<exclusion>
<groupId>bsh</groupId>
<artifactId>bsh</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm3</groupId>
<artifactId>jbpm-identity</artifactId>
<version>3.3.1.OKM</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
<version>3.4.2.Final</version>
<exclusions>
<exclusion>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queries</artifactId>
<version>3.1.0</version>
</dependency>
<!-- BeanShell support -->
<dependency>
<groupId>org.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>1.3.0</version>
</dependency>
<!-- OpenOffice.org integration -->
<dependency>
<groupId>org.artofsolving.jodconverter</groupId>
<artifactId>jodconverter-core</artifactId>
<version>3.0-beta-4</version>
</dependency>
<!-- Text extractors -->
<dependency>
<groupId>entagged.audioformats</groupId>
<artifactId>audioformats</artifactId>
<version>0.15</version>
</dependency>
<dependency>
<groupId>com.drewnoakes</groupId>
<artifactId>metadata-extractor</artifactId>
<version>2.4.0-beta-1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>${poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<!-- http://books.evc-cit.info/odf_utils -->
<groupId>com.catcode</groupId>
<artifactId>odfutils</artifactId>
<version>051129</version>
</dependency>
<!-- Spell checking -->
<!-- http://kenai.com/projects/jmyspell -->
<dependency>
<groupId>org.dts</groupId>
<artifactId>jmyspell-core</artifactId>
<version>1.0.0-beta-2</version>
</dependency>
<!-- Templates -->
<dependency>
<groupId>net.sf</groupId>
<artifactId>jodreports</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.odftoolkit</groupId>
<artifactId>odfdom-java</artifactId>
<version>0.8.6</version>
</dependency>
<!-- SIGAR -->
<dependency>
<groupId>org.hyperic</groupId>
<artifactId>sigar</artifactId>
<version>1.6.5.132</version>
</dependency>
<!-- GWT -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>${gwt.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>${gwt.version}</version>
<scope>provided</scope>
</dependency>
<!-- Only for development -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>${gwt.version}</version>
<scope>provided</scope>
</dependency>
<!-- GWT plugins -->
<dependency>
<groupId>com.google.code.gwt-log</groupId>
<artifactId>gwt-log</artifactId>
<version>3.1.6</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-incubator</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>gwt-vl.sourceforge.net</groupId>
<artifactId>gwt-vl</artifactId>
<version>2.0b-without-hibernate</version>
</dependency>
<!-- KEA -->
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>onejar</artifactId>
<version>2.2.4</version>
</dependency>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.5</version>
</dependency>
<!-- Java CronTab Syntax Parser -->
<dependency>
<groupId>com.kenai.crontab-parser</groupId>
<artifactId>crontab-parser</artifactId>
<version>1.0.1</version>
</dependency>
<!-- Apache CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ws.security</groupId>
<artifactId>wss4j</artifactId>
<version>1.6.8</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-ldap</artifactId>
<version>${spring.security.version}</version>
</dependency>
<!-- Plugin framework -->
<dependency>
<groupId>com.google.code</groupId>
<artifactId>jspf</artifactId>
<version>1.0.1</version>
</dependency>
<!-- Milton WebDAV -->
<dependency>
<groupId>com.ettrema</groupId>
<artifactId>milton-api</artifactId>
<version>${milton.version}</version>
</dependency>
<dependency>
<groupId>com.ettrema</groupId>
<artifactId>milton-servlet</artifactId>
<version>${milton.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Java Bean to Java Bean mapper -->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.3.2</version>
</dependency>
<!-- Language detection -->
<dependency>
<groupId>com.cybozu</groupId>
<artifactId>langdetect</artifactId>
<version>2011.11.28</version>
</dependency>
<!-- OWASP Java Encoders -->
<!-- https://code.google.com/p/owasp-java-encoder/ -->
<dependency>
<groupId>org.owasp</groupId>
<artifactId>encoder</artifactId>
<version>1.1</version>
</dependency>
<!-- Outlook Message -->
<dependency>
<groupId>com.auxilii</groupId>
<artifactId>msgparser</artifactId>
<version>1.11</version>
</dependency>
<!-- International Component for Unicode for Java -->
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>51.1</version>
</dependency>
<!-- Dropbox -->
<dependency>
<groupId>com.dropbox.sdk</groupId>
<artifactId>dropbox-client</artifactId>
<version>5.1.3</version>
</dependency>
<!-- OMR Tool -->
<!-- http://www.cse.iitd.ernet.in/~aseth/udai/OMRProj/README.html -->
<dependency>
<groupId>ca.uwaterloo.a3seth</groupId>
<artifactId>omr-tool</artifactId>
<version>2007.07.01</version>
</dependency>
<dependency>
<groupId>net.sourceforge</groupId>
<artifactId>jiu</artifactId>
<version>2007.07.01</version>
</dependency>
<!-- Video File manipulation -->
<dependency>
<groupId>xuggle</groupId>
<artifactId>xuggle-xuggler</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.13</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
최근에 저는 xuggle-xuggler : 5.4를 비디오 조작 기능에 추가했습니다. 대부분의 jar 버전을 업그레이드했습니다. 그 이후로이 오류가 발생했습니다.
해결법
-
==============================
1.mvn dependency : tree를 사용하여 slf4j maven의 버전을 알려줍니다. 잘못된 버전을 선택했다면 종속성 관리 섹션을 사용하여 원하는 버전을 지정할 수 있습니다.
mvn dependency : tree를 사용하여 slf4j maven의 버전을 알려줍니다. 잘못된 버전을 선택했다면 종속성 관리 섹션을 사용하여 원하는 버전을 지정할 수 있습니다.
dependency : tree의 결과가 올바른 버전 (즉, 찾을 수없는 메소드를 포함하고있는 버전)을 표시하면 -verbose : class를 jvm 인수로 추가하여 클래스를로드하는 위치를 확인합니다 (예 : jboss에서는 slf4j jar 대신 내부 로깅 항아리에서로드 할 수 있습니다.
-
==============================
2.의존성 : 트리는 사실 유용한 도구입니다.
의존성 : 트리는 사실 유용한 도구입니다.
또한이를 수정하는 또 다른 방법은 다음과 같습니다.
Eclipse IDE를 사용하는 동안 SHIFT + CTRL + T를 사용하여 "SLF4JLocationAwareLog"유형을 엽니 다.
관련 라이브러리를 찾을 수 있어야하며 잠재적 충돌이있을 수 있습니다.
추가 할 제외 사항을 알기 위해 pom.xml의 종속성 트리보기로 전환하십시오.
내 경우 엔 struts 의존성 jcl104-over-slf4j와 관련이있다. 나는 단지 의존성에서 이것을 제외시켰다.
<dependency> <groupId>displaytag</groupId> <artifactId>displaytag</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>jcl104-over-slf4j</artifactId> </exclusion> </exclusions> </dependency>
-
==============================
3.나는 Gradle 프로젝트에서 같은 문제를 겪었다.
나는 Gradle 프로젝트에서 같은 문제를 겪었다.
여기에 나온 대답이 유용했습니다. 나는 방금 Gradle 방식으로 해결해야했습니다.
여기 내 해결책은 다음과 같습니다.
configurations.all { all*.exclude group: 'org.slf4j', module: 'jcl104-over-slf4j' }
from https://stackoverflow.com/questions/20537459/java-lang-nosuchmethoderror-org-slf4j-spi-locationawarelogger-log by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java에서 정적 메서드를 쉽게 조롱 할 수있는 방법 (jUnit4) (0) | 2019.02.17 |
---|---|
[SPRING] Apache Tiles의 더 나은 대안 (0) | 2019.02.17 |
[SPRING] BeanFactory가 초기화되지 않았거나 이미 닫혔습니다 - 전에 '새로 고침'을 호출하십시오. (0) | 2019.02.16 |
[SPRING] 스프링 부트 프로젝트의 application.properties 파일은 어디에 있습니까? (0) | 2019.02.16 |
[SPRING] spring-data-neo4j와 함께 WrappingNeoServerBootstrapper를 사용하십시오. (0) | 2019.02.16 |