Dynamic Web Module을 변경할 때 자주 나는 에러가
Cannot change version of project facet Dynamic Web Module to x.x
이와 같은 에러이다.
필자의 경우 Dynamic Web Module은 3.1 버전을 사용하고 있지만 Maven servlet 버전은 2.5 버전으로 되어 있어서 생기는 현상이다. 2.5 -> 3.1로 변경하려는 상황이라 한다면, pom.xml에서 다음과 같은 라인을 찾아서 수정한다.
수정전
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
<version>2.5</version>
</dependency>
수정후
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<version>3.1.0</version>
</dependency>
위에서 명심해야 될 것은 artifactId가 javax가 포함된다는 것이다.
web.xml 확인
web.xml에서 web-app 버전이 이전버전으로 되어 있을 경우 수정해 준다.
에러가 났을 때 버전
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
수정후 버전
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
모든 에러를 잡았다면 프로젝트를 다시 빌드하여(빌드하고, maven update하고 지지고 볶고..) 문제를 끝낸다.
반응형
'Stackoverflow > Java' 카테고리의 다른 글
NoSuchMethodError: ZipFileZipEntrySource (0) | 2021.04.15 |
---|---|
[Java] javax.net.ssl.SSLHandshakeException (0) | 2021.03.08 |
Gradle 프로젝트 Import 실패 시 (0) | 2020.09.28 |
Maven 에러, Mark goal compile as ignored in eclipse preferences (0) | 2019.06.23 |
[Java] Cannot instantiate the type Map (0) | 2019.05.21 |