본문 바로가기
java/spring

gradle spring boot 셋팅시 error

by 새로운 도전을 위한 한걸음 2020. 4. 10.

gradle spring boot 셋팅시 error

 

spring boot 2.1.0 버전 사용시 아래와 같은 에러가 나타 날수 있다. 

에러 내용 

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;

ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/vsql] threw exception [Handler processing failed; nested exception is java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;] with root cause
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;
	at org.apache.catalina.core.ApplicationHttpRequest.setRequest(ApplicationHttpRequest.java:708)
	at org.apache.catalina.core.ApplicationHttpRequest.<init>(ApplicationHttpRequest.java:114)
	at org.apache.catalina.core.ApplicationDispatcher.wrapRequest(ApplicationDispatcher.java:917)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:358)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

 

문제 원인 : servlet version 이 내장 서버에 맞지 않아서 발생하는 문제.

2.1.0 버전 이상 사용시 톰켓 9은 servlet version 4.0을 사용하는데 버전이 맞지 않아서 문제함

providedCompile(
  [ group: 'javax.servlet' , name: 'javax.servlet-api' , version: '4.0.0' ]
  , [ group: 'javax.servlet' , name: 'jstl' , version: '1.2' ]
  , [ group: 'javax.servlet.jsp', name: 'javax.servlet.jsp-api', version: def_version.jspApi ]
)

 

해결방법 :  java[ group: 'javax.servlet' , name: 'javax.servlet-api' , version: '4.0.0'  의 버전을 내장 서버 버전과 동일하게 하면 문제 해결됨.