小编典典

Elastic Beanstalk工作者层上的Spring Boot

spring-boot

我正在尝试将Spring Boot应用程序部署到一个EB工人层中,但似乎EB尚未准备好管理此类项目。

我是否必须从我的Spring Boot应用强制生成.war?

谢谢!


阅读 375

收藏
2020-05-30

共1个答案

小编典典

我发现了问题。

EB希望使用.war文件,而Spring Boot应用通常是由嵌入式Tomcat或Jetty启动的。

我在本指南中找到了解决方案:

http://spring.io/guides/gs/convert-jar-to-
war/

加起来:

  1. 在pom.xml中使用提供的范围添加tomcat依赖项
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
  1. 创建一个扩展SpringBootServletInitializer的类,并在该类中加载入口点。这样,我们向servlet容器指示了如何启动应用程序。
        package com.proyecti.magma.conversionsworker.config.servlet;

    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.context.web.SpringBootServletInitializer;

    import com.proyecti.magma.conversionsworker.entrypoint.Application;

    public class ServletConfig extends SpringBootServletInitializer
    {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

    }
2020-05-30