Maven Spring Project에 Servlet 적용하기
1. 메이븐 리포지토리(https://mvnrepository.com)에서 "javax.servlet"를 검색합니다. 검색된 결과 중에 "Java Servlet API"를 선택하고 "Version"중에서 "3.1.0"를 선택합니다. 그리고 Maven 탭을 선택하고 복사합니다.
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
2. 메이븐 프로젝트에서 pom.xml 파일을 오픈하고 복사한 내용을 붙여 넣기하고 저장합니다.
그러면 자동으로 Spring Framework 라이브러리 파일(JAR)들이 다운로드됩니다.
javax.servlet-api-3.1.0.jar
메이븐 프로젝트에서 "Maven Update Project"을 실행하게 되면 이전에 설정한 Java의 버전이 초기화되어서 매번 다시 설정해야 합니다. 그래서 프로젝트 객체 모델(POM)의 Build Plugin으로 Java의 버전 정보를 설정하면 매번 설정하지 않고 사용할 수 있습니다.
Maven Spring Project에 Build Plugin 적용하기
1. pom.xml 파일을 오픈하여 <build>의 <plugins>에 maven-compiler-plugin을 <plugin>으로 추가하고 <configuration>에 <source>와 <target>으로 Java Compiler의 -source, - target의 Java 버전을 설정하면 됩니다.
자세한 설정 방법은 "https://maven.apache.org/plugins/maven-compiler-plugin/"를 참고하세요.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
</plugins>
</build>
2. 저장하면 빌드가 디시 되고 에러가 발생합니다.
에러는 "Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix."로 pom.xml의 프로젝트 구성이 최신이 아니라서 프로젝트 콘텍스트 메뉴에서 [Maven-> Update Project...]를 하라고 합니다.
"Project Explorer"의 "test1"에서 오른쪽 버튼을 클릭하여 콘텍스트 메뉴 [Maven > Update Project...]를 클릭합니다.
"Update Maven Project"창에서 "test1"를 체크하고 "OK"버튼을 클릭하면 됩니다.
이클립스 버전에 따라 하단 Markers 탭에 "Project 'test1' has no explicit encoding set"이라는 warning(경고)이 발생할 수 있습니다.
이 warning(경고)은 'test1' 프로젝트에서 명시적으로 인코딩 세트가 설정되어 있지 않다는 내용입니다.
"Project Explorer"의 "test1"에서 오른쪽 버튼을 클릭하여 콘텍스트 메뉴에서 Properties를 클릭하거나 메뉴에서 [Project > Properties]를 클릭합니다.
오픈된 Properties 창에서 Resource를 선택하고 Text file encoding을 확인해 보면 Inherited from container (UTF-8)이 선택된 것을 확인할 수 있습니다.
명시적으로 인코딩을 선택하기 위해서 UTF-8로 Other를 선택하면 됩니다.
"Apply and Close"버튼을 클릭하여 적용하면 Markers 탭에 있는 warning(경고)이 없어집니다.
그러나 Update Project를 실행하면 다시 Inherited from container (UTF-8)으로 다시 변경은 문제점이 있습니다. 그래서 다시 설정해줘야 합니다.
만약, 경고를 무시하고 싶으시면 메뉴에서 [Window > Perferences]를 클릭한 후 [General > Workspace]에서 "Report missing project encoding as:"를 Warning에서 Ignore로 변경하고 "Apply and Close"버튼을 클릭하여 적용하면 warning(경고)이 없어집니다.
Maven Spring Project에 web.xml 설정하기
만약, web.xml이 없으시다면 "Project Explorer"의 "test1"에서 오른쪽 버튼을 클릭하여 콘텍스트 메뉴 [Java EE Tools > Generate Deployment Descriptor Sub]를 클릭하여 web.xml 파일을 생성합니다.
web.xml 파일은 src > main > webapp > WEB-INF에 생성됩니다.
1. web.xml 파일을 오픈하여 <web-app>를 보면 javax.servlet 버전이 2.5인 것을 확인할 수 있습니다.
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
적용된 javax.servlet 버전에 맞게 3.1로 변경합니다.
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
이제 개발하기 위한 기본적인 설정이 완료되었습니다.
'Spring > Maven Project' 카테고리의 다른 글
Spring에 Filter 적용 (javax.servlet.Filter) (0) | 2022.09.11 |
---|---|
Spring에 JSTL(JavaServer Pages Standard Tag Library) 적용 (JSTL 1.2) (0) | 2022.09.11 |
Spring에 DispatcherServlet 적용 (Servlet, Component-Scan, ViewResolver), Controller 추가 (0) | 2022.09.06 |
Eclipse에 Spring Framework 적용 (spring-webmvc 5.2.22) (0) | 2022.09.03 |
Maven Spring Project을 위한 IDE 설치 및 개발 환경 설정 (0) | 2022.09.03 |