Spring 引导部署 war

Spring boot deploying a war

我正在尝试将带有 spring boot 2.0.6 和 Java 8 的 spring 引导应用程序部署到 Ubuntu 18 上的 Tomcat 8服务器并在 Windows xampp 上进入 tomcat 7。我读到更好的方法是创建一个 war 文件,将其放在 webapps 文件夹中,然后启动服务器。我会这样尝试并使用 tomcat.

的管理器应用程序

为了配置 tomcat 服务器,我按照 Ubuntu 中 tomcat 8 的 this 指南进行操作。

在他们两个中我都得到了相同的结果,我可以在上传后在服务器中启动我的应用程序但是如果我尝试在浏览器中写入路径或通过单击 [=63 中的路径来访问它=] 的管理器应用程序,但浏览器显示 404 错误 everytime.The 错误提示:所需资源不可用。

昨天我尝试下载示例 war 并上传它,它工作正常。所以我猜我创建 war.

的形式是错误的

作为 IDE 我正在使用 Spring Tool Suit 3。要创建一个 war 我遵循了以下步骤:

  1. 在我的 class.
  2. 上扩展 SpringBootServletInitializer
  3. 在我的主 class.
  4. 上添加 SpringApplicationBuilder 方法
  5. 将位于我的 pom.xml 中的内容从 jar 更改为 war。
  6. 添加下一个依赖:

    <dependency>    
        <groupId>org.springframework.boot</groupId>         
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>     
    </dependency>
    
  7. 右击项目> 运行 as >Maven build...

  8. 在说 "Gloas" 的输入中写 "package"。

一段时间后 war 被创建。我现在不知道它是否是正确的形式,但这是我唯一知道的。你能帮帮我吗?

这是 link 到一个存储库,其中包含我正在尝试部署的配置的示例代码:https://bitbucket.org/josealvarezvivar/samplespring/src/master/

提前致谢。

你需要用 war 打包你的 html 页面,如果它不在 src/main/resources

您好,如果您使用的是 Spring Boot 2,您需要从 webflux 依赖项中排除 netty react 服务器,如下所示。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
    <exclusions>
      <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-reactor-netty</artifactId>
      </exclusion>
    </exclusions>
</dependency>

使用 maven 创建您的 WAR 文件,您应该没问题。