스프링 부팅 애플리케이션을 배포하려면 web.xml이 필요합니까?
저는 전쟁으로 스프링 부트 애플리케이션을 패키지화하려고 했습니다.이에 따라 애플리케이션 클래스를 수정했습니다.
@SpringBootApplication
@EntityScan({"org.mdacc.rists.cghub.model"})
@EnableJpaRepositories(basePackages = {"org.mdacc.rists.cghub.ws.repository"})
public class Application extends SpringBootServletInitializer
{
public static void main( String[] args )
{
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
또한 내 pom.xml에 다음 사항을 추가했습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
프로젝트를 패키지화할 때 다음 오류가 발생했습니다.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project cg-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
스프링 부트 애플리케이션을 읽다가 web.xml을 만드는 것에 대해 아무것도 보지 못했습니다.war로 스프링 부트 애플리케이션을 배포하려면 web.xml이 필요합니까?
이 답변에 따르면 Maven은 pom.xml에 다음 스니펫을 추가하여 web.xml 부재를 무시합니다.
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
웹 종속성이 있습니까?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
구성이 필요한 경우 언제든지 web.xml을 저장할 수 있습니다. 파일을 WEB-INF 내의 올바른 폴더에 저장하면 봄에 해당 파일을 가져가서 구성을 읽을 수 있습니다.또한 포장을 다음으로 변경합니다.
<packaging>war</packaging>
봄 부츠에 부모 폼을 사용하는 것을 고려합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
</parent>
이 구성
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
서블릿 공급자와의 간섭을 피하기 위해 전쟁 파일에 Tomcat 종속성을 포함하지 말라고 Maven에게만 말합니다.
당신은 실제로 필요하지 않습니다.web.xml생성할 파일WAR배포할 준비가 되었습니다.구축 방법은 다음과 같습니다.Spring BootGradle을 사용한 기반 아티팩트.
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE"
}
}
apply plugin: 'war'
apply plugin: 'spring-boot'
repositories {
mavenCentral()
}
dependencies {
compile "org.springframework.boot:spring-boot-starter-web:1.3.3.RELEASE"
//Allows to run spring boot app on standalone Tomcat instance
providedRuntime "org.springframework.boot:spring-boot-starter-tomcat:1.3.3.RELEASE"
}
구축하기 위해WAR실행해야 합니다.
gradle war
서블릿 2.5 사양(java EE 5)에서는 web.xml이 필수이고, 서블릿 사양 3+(java EE 6)에서는 web.xml을 제거하고 주석 구성을 대신 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/36315591/is-web-xml-required-to-deploy-a-spring-boot-application
'prosource' 카테고리의 다른 글
| 암호 없이 PS 자격 증명 만들기 (0) | 2023.08.01 |
|---|---|
| MySQL에서 결과 집합을 연결하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
| npm을 통해 설치된 노드 모듈을 편집하려면 어떻게 해야 합니까? (0) | 2023.07.27 |
| sql 중첩된 대/소문자 문장 (0) | 2023.07.27 |
| 파워셸에서 XML을 통해 반복하는 방법은 무엇입니까? (0) | 2023.07.27 |