728x90
반응형
SpringBoot 웹 어플리케이션을 개발 후 war 방식으로 package시 web.xml이 필수라고 에러발생!!!
[DEBUG] Excluding [] from the generated webapp archive.
[DEBUG] Including [**] in the generated webapp archive.
[INFO] Building war: D:\Develop\Workspace\wyleedp\devcode\devcode-web\target\devcode-web-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.749 s
[INFO] Finished at: 2023-01-18T08:45:20+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project devcode-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project devcode-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
... 생략 ...
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
at org.apache.maven.plugin.war.WarMojo.execute (WarMojo.java:193)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
... 생략 ...
Caused by: org.codehaus.plexus.archiver.ArchiverException: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
개발환경정보
- JDK 11
- SpringBoot 2.7.7
- Maven 3.8.6
확인결과
WAS(예:톰캣)에서 WAR 파일을 실행할때 web.xml이 필수로 존재하여야 어플리케이션이 작동하는데 해당 파일이 없어서 에러가 발생하는 것으로 확인
하지만 Servlet 3.0 스펙부터는 web.xml이 필수가 아니기 때문에 mvn package시 web.xml 생성 관련옵션을 지정하면 문제 없이 해결된다.
해결방법
pom.xml에서 properties > failOnMissingWebXml 옵션을 false로 지정하면 문제없이 패키징이 된다.
java -jar 방식으로 실행시 예외사항
패키징한 WAR 파일을 java -jar 방식으로 실행시 ClassNotFound 관련에러가 발생하면 maven golas에 spring-boot:repackage 를 추가하여 실행하거나 pom.xml에 repackage 설정을 지정하면 된다.
1. maven goal 추가방식
2. pom.xml - repackage 옵션 지정방식
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
[SpringBoot] No command found for '--spring.output.ansi.enabled=always' 에러메세지 표시 후 구동실패 (0) | 2024.01.19 |
---|---|
SpringSession을 이용한 로그인시 InvalidClassException 발생 (0) | 2022.05.09 |
SpringBoot Session JDBC 사용시 테이블명 변경하는 방법 (0) | 2022.04.18 |
[STS] STS를 이용한 Springboot Application 쉽게 만들기 (0) | 2022.04.05 |
[SpringBatch] 구동시 'batch_job_instance' doesn't exist 에러발생 (0) | 2021.08.03 |