【问题标题】:How to deploy a spring boot MVC application in traditional tomcat webapps folder?如何在传统的 tomcat webapps 文件夹中部署 Spring Boot MVC 应用程序?
【发布时间】:2015-08-25 06:07:19
【问题描述】:

我在 springboot springmvc 和 gradle 示例之后创建了一个简单的 spring mvc 应用程序。

下面是结构。 src/main/java - 这是所有代码库的地方。 src/main/resources - 这是所有资源/模板所在的位置。

导入 org.springframework.boot.SpringApplication; 导入 org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 公共类应用程序{ 公共静态无效主要(字符串[]参数){ SpringApplication.run(Application.class, args); } }

只需编写上述类并使用零配置,我就能够启动我的 spring-mvc Web 应用程序(这非常酷)。 (通过命令 gradlew build 和 gradlew bootrun) 但是来自传统的 Web 应用程序开发和部署背景,我想知道如何从中创建一个 war 文件并将其部署到 tomcat webapps 文件夹中。

另外,将所有新资源(如 js 文件、css 等)保存在哪里。我们通常会有一个 WEB-INF 文件夹来保存它们,但是在这里做什么。

【问题讨论】:

标签: java spring-mvc tomcat spring-boot


【解决方案1】:

meskobalazs 在构建 war 部署时回答了您关于资源的问题(但请注意,src/main/webappjar 部署中不会被读取为资源文件夹,您有在这种情况下将其添加为资源)。

当您想将 Spring-Boot 应用程序更改为 Web 部署时,您基本上必须做两件事:

  • 将项目的打包从 jar 转换为 war
  • 将嵌入式tomcat的依赖改为provided

更多详情请见Spring-Boot documentation site

【讨论】:

  • 还有一个更重要的步骤。您还应该验证 war 文件的基本名称是否与 src/main/resource/application.properties 中的 spring server.context-name 匹配。这样,访问 Spring Boot 加载的应用程序与 Tomcat 中的 Web 应用程序时,URL 将是相同的。例如,要从两个部署中查看localhost:post/mycontext,请将“server.context-path=/mycontext”行放在 src/main/resource/application.properties 中,然后将 mycontext-1.0.0.war 部署到 / webapps/mycontext.war
【解决方案2】:

Spring Boot 包含 Tomcat 容器。

您必须删除外部 Tomcat 才能部署您的项目

【讨论】:

    【解决方案3】:

    如果您使用的是Maven项目,则需要修改pom.xml以将包装改为war ,如下

    <packaging>war</packaging>
    

    如果你使用的是Gradle项目,你需要修改build.gradle如下

    apply plugin: 'war'
    

    一旦你构建项目,它会创建一个war文件,所以你可以很容易地部署在任何tomcat服务器的webapps文件夹中

    【讨论】:

      猜你喜欢
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 2019-10-12
      • 2017-04-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      相关资源
      最近更新 更多