提问者:小点点

春靴展开战争


我正在尝试使用spring boot 2.0.6和Java 8将一个spring boot应用程序部署到Ubuntu 18服务器上的Tomcat 8和Windows xampp上的tomcat 7中。我了解到更好的方法是创建一个war文件,把它放在webapps文件夹中,然后启动服务器。我会像这样使用tomcat的管理器应用程序进行尝试。

为了配置 tomcat 服务器,我遵循了 Ubuntu 中 tomcat 8 的本指南。

在这两种情况下,我都会得到相同的结果,我可以在上传后在服务器上启动我的应用程序,但如果我尝试在浏览器中写入路径或单击tomcat的管理器应用程序中的路径来访问它,但浏览器每次都会显示404错误。错误显示:所需资源不可用。

昨天我尝试下载一个示例 war 并上传它,它工作正常。所以我想错误在于我制造战争的形式。

作为IDE,我正在使用Spring工具套装3。为了制造一场战争,我遵循了以下步骤:

>

  • 在我的主类上扩展SpringBootServletInitializer
  • 在我的主类上添加SpringApplicationBuilder方法
  • 更改我的pom中的内容。xml从jar到war
  • 添加下一个依赖项:

    <dependency>    
        <groupId>org.springframework.boot</groupId>         
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>     
    </dependency>
    

    右键单击项目

    过了一会儿,战争就爆发了。我现在不知道它是否正确,但这是我唯一知道的。你能帮我吗?

    这是指向存储库的链接,其中包含我尝试部署的配置的示例代码:https://bitbucket.org/josealvarezvivar/samplespring/src/master/

    提前感谢。


  • 共2个答案

    匿名用户

    嗨,如果你使用的是Spring Boot 2,你需要从webflux依赖关系中排除netty react server,如下所示。

    <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 文件,您应该没问题。

    匿名用户

    你需要打包你的html页面与战争,如果它不在src/main/资源这可能会有所帮助