[SPRING] Java Spring 부트 - Tomcat에 배포하지 않는 war 파일 Apache
SPRINGJava Spring 부트 - Tomcat에 배포하지 않는 war 파일 Apache
Java Spring 부트 프로젝트를 빌드 중입니다. 요구 사항에 따라 프로젝트를 war 파일로 생성해야합니다. 그런 다음 Tomcat Apache 만 실행하면됩니다.
나는 war 파일을 만들었지 만 배포하려고 할 때 구조가 올바르지 않은 것처럼 보이고 404 프로젝트를 보려고하는 것처럼 생성됩니다.
해결법
-
==============================
1.스프링 부트를 전쟁으로 전개하려면 Application 클래스를 재구성해야한다.
스프링 부트를 전쟁으로 전개하려면 Application 클래스를 재구성해야한다.
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html#howto-create-a-deployable-war-file
@SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
pom.xml에 더하다
<packaging>war</packaging>
내가 maven을 사용함에 따라 나는 또한 의존성을 추가했다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
내 응용 프로그램은 프론트 엔드 표현 레이어로 reactjs를 사용하고 API 레이어처럼 Java를 사용한다는 점에서 복잡했습니다. reactjs 빌드를 main / src / webapps로 옮겨야했습니다. 그러면 js, css 및 html 파일의 번들로 올바르게 war 파일에서 렌더링됩니다. 반응 레이어가 프리젠 테이션 레이어 역할을하면 API를 통해 자바쪽에 만 연결할 수 있습니다. 따라서 URL 구조가 중요하며 모든 것을 루트에서 실행하게했습니다. 따라서 Tomcat에 배포하는 경우 ROOT.war이라는 war 파일의 이름을 변경해야 할 수 있습니다.
-
==============================
2.내부에 애플리케이션 서버를 포함하여 application.jar로 Spring-Boot 빌드.
내부에 애플리케이션 서버를 포함하여 application.jar로 Spring-Boot 빌드.
Spring Boot는 Spring 기반의 프로덕션 수준의 응용 프로그램과 서비스를 최소한의 소란으로 쉽게 만들 수 있도록합니다. 새로운 사용자와 기존 사용자가 필요한 비트 수를 빠르게 얻을 수 있도록 Spring 플랫폼의 견해를 엿 봅니다. 이를 사용하여 'java -jar'또는보다 일반적인 WAR 배포를 사용하여 시작할 수있는 독립형 Java 응용 프로그램을 만들 수 있습니다. 또한 'spring scripts'를 실행하는 명령 줄 도구도 제공합니다.
https://spring.io/blog/2013/08/06/spring-boot-simplifying-spring-for-everyone
nohup java -jar app.jar &
-
==============================
3.스프링 부트 웹 프로젝트의 실제 예제 WAR 부트 용 웹 애플리케이션
스프링 부트 웹 프로젝트의 실제 예제 WAR 부트 용 웹 애플리케이션
maven을 통한 일반적인 SpringBoot 앱 빌드는 패키지화 된 jar입니다.
WAR로 수정하고 WEB-INF의 내용이 올바른지 확인하십시오.
war로 패키징 된 스프링 부트 애플리케이션은 별도로 Tomcat에 배치하는 것이 아니라 Spring 부트 애플리케이션 (main 메소드를 통해)을 통해 직접 실행하는 것이다. 테스트 할 필요가 있지만 내 이해에 따라 누군가가 바람둥이 안에 배치 할 것을 제안한다면 정규 웹 응용 프로그램을 요구하는 사람들에게 알려야합니다. SpringBoot 응용 프로그램.
각 Spring Boot Application은 자체 컨테이너를 실행합니다.
또한 템플릿 디렉토리에 뷰 파일을 보관하는 경우 Thymeleaf를 사용하지 않는 경우 템플리트 디렉토리에서 정적 컨텐츠로 선택할 수 없습니다.
-
==============================
4.기존 배포 페이지에 따르면 종속성을 추가해야합니다.
기존 배포 페이지에 따르면 종속성을 추가해야합니다.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
from https://stackoverflow.com/questions/46699556/java-spring-boot-war-file-not-deploying-on-tomcat-apache by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 같은 bean에서 bean을 autowire하는 법 (0) | 2019.05.03 |
---|---|
[SPRING] 페이스 북을 통한 로그인 후 스프링 보안 설정 쿠키 저장 (0) | 2019.05.03 |
[SPRING] Spring에서 JndiObjectFactoryBean을 재정의하고 java에서 암호를 해독하는 방법 (0) | 2019.05.03 |
[SPRING] 스프링 부트 유닛 테스트에서 컴포넌트 스캔이 작동하지 않는 이유는 무엇입니까? (0) | 2019.05.03 |
[SPRING] applicationcontext.getbean vs @configurable 사용의 이점 [닫힘] (0) | 2019.05.03 |