【问题标题】:How to create deployable springboot war如何创建可部署的 springboot 战争
【发布时间】:2016-05-19 14:57:52
【问题描述】:

我正在尝试创建一个要部署在 Tomcat 中的 maven spring boot 应用程序。我正在遵循 Spring 文档和其他 stackoverflow 建议中的建议-war、Application.java 扩展 SpringBootServletInitializer、从构建插件中删除 spring-boot-maven-plugin 等。生成 War 文件并部署在 tomcat 中。但我发现所有静态文件都打包在 /WEB-INF/classes 文件夹下,我无法访问该页面。我的项目结构如下:

谁能告诉我如何正确打包战争以部署在 Tomcat 中。

【问题讨论】:

    标签: maven tomcat deployment spring-boot war


    【解决方案1】:

    这不会改变任何事情。

    如果您将静态资产放在 src/main/resources/static 中(它们最终在 WEB-INF/classes/static 中),Spring Boot 将正确地为它们提供服务。因此,如果您的 web 应用程序的上下文是 your-contexthttp://localhost:8080/your-context/foo.png 将提供 src/main/resources/static/foo.png

    关于配置,你也可以进入start.spring.io,点击advanced,选择war,你会得到一个预先配置好的空项目。

    或者你可以点击这个:https://start.spring.io/#!packaging=war

    【讨论】:

    • 我尝试过在静态中添加静态资源,但效果不佳。事实上 /static (或 /public 或 /resources 或 /META-INF/resources 根据 spring 文档是可以的。link
    • 你想访问 home.html 的东西吗?那必须在src/main/resources/static/index.html
    • 是的 Stephane,我想在 Tomcat 中构建战争时将 src/main/resources/static 文件夹的内容打包到上下文路径中。我正在寻找一种将静态文件夹的内容打包到上下文路径的方法,就像传统的 Web 应用程序一样。
    • 很抱歉让您失望了,但真的没什么可做的。也许我不明白你想做什么?我创建了 a simple application 来展示我的意思。查看the commit了解更多详情。
    • 我已经部署了示例应用程序,但没有对我的 tomcat 8 服务器进行任何更改,但我无法成功,我不知道为什么。
    【解决方案2】:

    问题是因为版本问题。我用 Java 8 编译了应用程序并将其部署在运行在 JRE 7 下的 tomcat 中。它可能会帮助面临同样问题的人。 我从下面的帖子中得到了线索: Spring boot war file deploy on Tomcat.

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 2016-07-10
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多