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类。
@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