Elastic Beanstalk工作层上的Spring Boot

时间:2014-09-29 15:45:37

标签: spring spring-boot elastic-beanstalk

我正在尝试将Spring启动应用程序部署到一个EB工作层,但似乎EB还没有准备好管理这种项目。

我是否必须从我的春季启动应用程序强制生成.war?

谢谢!

1 个答案:

答案 0 :(得分:5)

我找到了问题。

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>
    
  2. 创建一个扩展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);
        }
    
    }