WEB/Maven

웹 프로젝트로 변경하기

s_y_130 2022. 11. 8. 20:08

 

자바 프로젝트의 경우 웹 프로젝트로 변경 시 수정해야 할 것이 많으나 Maven 프로젝트는 이에 대해 편의를 제공해준다.

 

 

웹 프로젝트로 변경

다음과 같이 <packaging> 태그 내용을 jar에서 war로만 바꿔주면 된다.

 

war는 Web application ARchive의 약자이다.

이후 프로젝트 업데이트를 진행하게되면 구조가 바뀌면서 에러가 발생하는데 이는 web.xml 문서가 없기에 나타나는 문제이다. 

 

**만약 첫줄(<project xmlns....)에서 에러가 발생한다면 맨 아래 해결 방법을 적어뒀음**

 

다음과 같이 webapp 폴더 내에 WEB-INF폴더를 생성하고 그 안에 web.xml를 추가해준다. (apache-tomcat-8.5.83에 있는 web.xml 파일 붙여넣음)

 

 

이후 webapp 폴더에 index.html 파일을 생성하여 테스트하면 정상적으로 작동하는 것을 확인할 수 있다.

 

 


문제

war로 패키징되는 메이븐 프로젝트를 생성한 뒤 아래 에러가 발생했다.

Exception java.lang.ExceptionInInitializerError: 
Cannot access defaults field of Properties 
[in thread "Worker-30: Building"]

에러가 표시되는 부분은 pom.xml의 첫줄 <project xmlns=...이다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>in.wonj</groupId>
  <artifactId>myArtifact</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <dependencies>
  	<dependency>
  		...(생략)...
  	</dependency>
    ...(생략)...
  </dependencies>
  
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-compiler-plugin</artifactId>
  			<version>3.10.1</version>
  			<configuration>
  				<release>18</release>
  				<encoding>utf-8</encoding>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>
</project>

해결

pom.xml에 maven-war-plugin플러그인을 추가한다.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.3.2</version>
</plugin>