Spring Boot
스프링부트 3.0 javax/servlet/jsp/tagext/TagLibraryValidator 에러 해결하기
dev.mk
2023. 6. 10. 17:17
반응형
java.lang.NoClassDefFoundError javax/servlet/jsp/tagext/TagLibraryValidator
오랜만에 스프링부트에서 jsp+jstl 조합으로 개발할 일이 있어 셋팅하다 한참을 삽질 후 해결법을 설명한다.
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
본인의 스프링부트 버전 3.1.0
일반적인 스프링에서 jstl을 사용하면 아래의 의존성을 추가하면 되었지만 계속 javax/servlet/jsp/tagext/TagLibraryValidator 에러발생
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
우선 스프링부트 3.0에서 Servlet의 패키지가 변경됨
javax.servlet =====> jakarta.servlet
javax.* 부분을 jakarta.* 으로 변경해야 함
그러므로 javax.servlet 패키지의 의존성을 사용불가
그래서 아래의 의존성 4개를 추가하면 문제없이 된다.
pom.xml
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
반응형