본문 바로가기
프로그래밍/스프링프레임워크

Maven 웹 프로젝트 서블릿 3.1로 업그레이드 하기

by pentode 2019. 3. 10.

앞에서 작성한 "Eclipse에서 Maven 웹 프로젝트 만들기"는 기본 Maven 템플릿을 사용하는데 JDK 1.5와 서블릿 2.3으로 작성이 됩니다. 이것을 JDK 1.8에 서블릿 3.1 로 올려 봅니다.



1. JDK를 1.8로 변경합니다.


기존의 JDK 1.5를 제거하고 JDK 1.8을 추가합니다. JDK의 추가는 Preferences의 Installed JREs에서 추가해 두면 됩니다. 여러 버전의 JDK를 설치해 둘 수 있습니다.


JDK 변경



컴파일러 설정을 1.8로 변경합니다. 프로젝트의 Preferences의 Java Compiler에서 "Enable project specific settings" 를 체크하고 "Use compliance from execution environment 'JavaSE-1.8' on the 'Java Build Path'"를 선택합니다. 또는 "Use default compliance settings"의 체크를 해제 하고,  "Compiler compliance level"을 1.8로 변경합니다.


Java Compiler 설정




2. 서블릿 스펙을 3.1로 변경합니다.


pom.xml 파일에 의존성을 추가합니다.


<dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>javax.servlet-api</artifactId>

    <version>3.1.0</version>

    <scope>provided</scope>

</dependency>



web.xml에 DTD를 3.1로 변경합니다.


<?xml version="1.0" encoding="UTF-8"?>

<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"

         id="WebApp_ID" version="3.1">

  <display-name>Archetype Created Web Application</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>



3. Project Facets에서 JDK와 서블릿 스펙을 변경합니다.


프로젝트 Preferences에서 변경 하려고 했지만 변경이 되지 않습니다.


워크스페이스의 프로젝트 폴더의 .settings 폴더 아래 org.elclipse.wst.common.project.facet.core.xml 파일을 수정합니다.


<?xml version="1.0" encoding="UTF-8"?>

<faceted-project>

  <fixed facet="wst.jsdt.web"/>

  <installed facet="java" version="1.8"/>

  <installed facet="jst.web" version="3.1"/>

  <installed facet="wst.jsdt.web" version="1.0"/>

</faceted-project>



필요한 사항이 수정되었습니다.


project facets 변경



4. pom.xml에 컴파일러 플러그인을 추가합니다.


위에 까지 하면 실행에 문제가 없습니다. 하지만 Maven -> Update Project를 실행하면 처음의 JDK 설정으로 돌아가 버립니다. 그래서 컴파일러 플러그인을 추가합니다.(<build> 하위에 추가합니다.)


<plugins>

    <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.1</version>

        <configuration>

            <source>1.8</source>

            <target>1.8</target>

        </configuration>

    </plugin>

</plugins>


5. 실행결과 입니다.


컴파일 오류가 모두 없어졌고, 정상적으로 실행이 됩니다. 추가적으로 수정된 부분은 프로젝트의 캐릭터셋을 UTF-8로 설정했고, index.jsp 파일에 컨텐츠 타입, 엔코딩 등을 추가했습니다.


실행결과



다음에는 스프링프레임웍을 사용할 수 있도록 올려보겠습니다.

반응형