Spring 프로젝트를 Tomcat에 Server를 추가해서 실행할 때 아래와 같은 에러가 발생하는 경우가 있습니다.
Tomcat version 8.5 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, and 7 Web modules
이런 경우 톰캣, 자바, 웹 모듈버전 등 서버관련 버전이 맞지 않기 때문입니다.
저의 경우에는 servlet 4.0을 사용할려고 하는데 톰캣 8.5를 사용하기 때문에 발생했습니다.
위의 표를 확인 후 프로젝트 생성전에 버전을 맞추거나 Project Facets(프로젝트 우클릭 -> Properties)에서 버전을 수정하면 됩니다.
Web Module 버전을 변경하는 경우 아래와 같은 오류가 발생하게 됩니다.
해당 부분을 해결하기 위해서는 pom.xml에서 Java.servlet-api 버전을 변경하려는 버전으로 변경한 후 빌드 한 후 web.xml 파일에서 web-app를 변경하고자 하는 모듈로 변경하고 저장합니다.
Dynamic Web Module 3.1
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
>
Dynamic Web Module 3.0
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
>
Dynamic Web Module 2.5
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
>
그 후에 프로젝트가 설치된 워크스페이스의 설정폴더로 들어간 후 org.eclipse.wst.common.project.facet.core.xml 파일에서 jst.web 부분을 변경한 버전으로 변경해줍니다.
이클립스 메뉴에서 File > Restart 한 후 Properties -> Project Facets에서 다시 확인해보면 모듈 버전이 변경된 것을 확인할 수 있습니다.
Reference