티스토리 뷰
SW개발/Spring Framework
Caused by: java.lang.NoClassDefFoundError: org/apache/tomcat/util/descriptor/tld/TldParser
개소왕 2020. 12. 31. 10:50* 개요
구동시 다음 오류
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-2.3.5.BUILD-SNAPSHOT.jar:2.3.5.BUILD-SNAPSHOT]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) ~[spring-context-5.2.10.RELEASE.jar:5.2.10.RELEASE]
...
...
...
Caused by: java.lang.NoClassDefFoundError: org/apache/tomcat/util/descriptor/tld/TldParser
이상했던건 기존에 작동 잘 되고 있었고,
pom.xml 을 수정했다가 오류가 나서 다시 원상복구시켰음에도(즉, 기존에 작동 되던 코드) 계속 오류가 나기 시작.
* 원인
TldParser 가 톰캣 8 부터 제공되며, 톰캣 7엔 없다고..
pom.xml 의 의존성 관련 오류로 보임
* 해결 1 - pom.xml 의 tomcat-embed-jasper 을 provided 로 선언 - 난 안됨.
* 해결 2 - pom.xml 의 warning 문제 해결
pom.xml 에 들어가니 tomcat-embed-jasper, jstl 이 version 충돌관련 warning 이 떠 있었음
지시대로 version 태그 삭제 후 동작되기 시작.