728x90

서버에 프로젝트를 배포하는 작업을 진행하다 404 에러가 발생했다. 로그를 살펴보자.

1
2
3
4
5
6
7
11-Jul-2023 22:11:41.239 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs.
Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them.
Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path, preempting StackOverflowError.
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
11-Jul-2023 22:11:41.303 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
11-Jul-2023 22:11:41.336 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
cs

 

maven의 pom.xml에서 dependency에 입력된 라이브러리들을 다운받는 과정에서 log와 관련된 기능을 사용하는 데 두개의 라이브러리에 해당 함수가 둘다 중복되어 존재하기 때문에 발생하는 이슈 같다.

'log4j-over-slf4j.jar' 이 라이브러리는 프로젝트에서 많은 곳에서 사용하다보니 제거하는 것이 어려워 상대적으로 잘 사용하지 않는 'slf4j-log4j12.jar'이 라이브러리를 다운로드하지 않게 제외 처리해서 해결했다.

방법은 pom.xml에서 exlusions 문법을 사용하면된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        <dependency>    
            <groupId>org.projectreactor.spring</groupId>
            <artifactId>reactor-spring-context</artifactId>
            <version>${reactor.spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
cs

 

728x90
TOP