Elastic Beanstalk 工作层上的 Spring Boot

Posted

技术标签:

【中文标题】Elastic Beanstalk 工作层上的 Spring Boot【英文标题】:Spring Boot on Elastic Beanstalk worker tier 【发布时间】:2014-11-24 01:48:57 【问题描述】:

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

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

谢谢!

【问题讨论】:

EB 工作程序层支持 Java Tomcat 应用程序。您可以尝试将您的应用程序与“运行 Tomcat 7 Java 7 的 64 位 Amazon Linux 2014.03 v1.0.7”一起使用吗 我刚刚添加了解决方案 :) 【参考方案1】:

我找到了问题。

EB 需要一个 .war 文件,而 Spring Boot 应用程序通常由嵌入式 Tomcat 或 Jetty 启动。

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

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

总结:

    在 pom.xml 中添加具有提供范围的 tomcat 依赖项

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

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

【讨论】:

嗨,您是否尝试过在 ElasticBeanstalk 上使用 Spring Boot + tomcat 和 SSL? 嗨,抱歉,我还没有处理 SSL。这可以帮助你吗? docs.spring.io/spring-boot/docs/current/reference/html/… 可以分享您的实例配置吗?哪个 Tomcat,哪个 Java 等等。谢谢! 对不起,我现在不在那个项目上。我记得它是使用 AWS 向导提供的默认图像,并且自定义与使用 .ebextensions 文件夹中的初始化脚本安装一些必需的库以及启用 websockets 相关(这篇文章可以帮助您:***.com/questions/18460832/…)。希望对您有所帮助!

以上是关于Elastic Beanstalk 工作层上的 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk 上的 Auto Scaling 批处理作业

Elastic Beanstalk 上的 Https - wordpress

Elastic Beanstalk 上的 NodeJS 多容器 Docker

同时部署到 Amazon Elastic Beanstalk 上的多个环境

Laravel 5.1:Elastic Beanstalk 工作层设置队列

Elastic Beanstalk 上的 Sidekiq 进程 - Errno::ENOENT:没有这样的文件或目录 - getcwd