Java Spring Boot – war文件未在Tomcat Apache上部署

我正在构建一个Java Spring启动项目 – 作为一项要求,我需要将项目生成为war文件 – 然后让Tomcat Apache单独运行。

我已经构建了war文件,但是当我尝试部署它时,它就好像结构不正确并且生成404试图查看项目。

  • 问题 在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

  • 我的pom

    http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

    org.springframework gs-spring-boot 0.1.0 war  org.springframework.boot spring-boot-starter-parent 1.5.7.RELEASE     org.springframework.boot spring-boot-starter-web    org.springframework.boot spring-boot-starter-test test    org.springframework.boot spring-boot-starter-security    org.springframework.boot spring-boot-starter-data-jpa    org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.1.Final    mysql mysql-connector-java    org.springframework.boot spring-boot-starter-mail    org.springframework.boot spring-boot-devtools true provided    org.freemarker freemarker 2.3.23    com.googlecode.json-simple json-simple 1.1.1    org.springframework.boot spring-boot-starter-actuator    org.springframework.boot spring-boot-configuration-processor true   com.h2database h2 1.4.194 test    1.8     org.springframework.boot spring-boot-maven-plugin   maven-failsafe-plugin    integration-test verify       

要将Spring Boot部署为战争 – 您需要重新配置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中添加

 war 

因为我使用maven我也添加了依赖。

  org.springframework.boot spring-boot-starter-tomcat provided  

我的应用程序很复杂,因为我使用reactjs作为前端表示层,Java就像api层一样。 我不得不将reactjs构建移动到main / src / webapps中 – 然后将其作为js,css和html文件包正确地呈现在war文件中。 由于reactjs充当表示层,它只能通过api连接到java端 – 所以url结构很重要,我把所有东西放在预期它将从根运行。 因此,如果部署到tomcat – 您可能需要重命名war文件ROOT.war。

Java Spring Boot – war文件未在Tomcat Apache上部署

Spring-Boot与application.jar一起提供,包括应用程序服务器。

Spring Boot旨在轻松创建Spring驱动的生产级应用程序和服务,而且操作简便。 它采用了Spring平台的观点,以便新用户和现有用户可以快速获得他们需要的位。 您可以使用它来创建可以使用“java -jar”或更传统的WAR部署启动的独立Java应用程序。 我们还提供了一个运行’spring scripts’的命令行工具。

https://spring.io/blog/2013/08/06/spring-boot-simplifying-spring-for-everyone

因此,您无需再次在Apache Tomcat Application Server中进行部署。 就像简单的java .jar文件一样运行它。

 nohup java -jar app.jar & 

Spring Boot Web项目Spring Boot WebApp的一个工作示例为WAR

通过maven构建的常规SpringBoot应用程序是一个打包的jar。

您需要将其修改为WAR并检查WEB-INF的内容是否正确。

打包为war的Spring启动应用程序不是单独部署到Tomcat中,而是直接通过Spring Boot App运行(通过main方法)。 您需要测试,但根据我的理解,如果有人建议您在tomcat中部署它,那么您需要通知他们他们要求常规Web应用程序而不是SpringBoot应用程序。

每个SpringBoot应用程序都运行自己的容器。

此外,您将视图文件保留在模板目录中,如果您不使用Thymeleaf,则无法从模板目录中选择它们作为静态内容。

根据传统部署页面,您必须添加依赖项

  org.springframework.boot spring-boot-starter-tomcat provided