当前位置: 首页 > 知识库问答 >
问题:

在AWS Elastic Beanstalk上部署Spring Boot应用程序-获取502错误

华章横
2023-03-14

我知道,这里有很多这样的问题和答案,但没有一个帮助我。我尝试在AWS弹性豆茎上安装我简单的Spring Boot应用程序。有一个限制:它必须使用. jsp模板,所以它是. war,而不是. jar。如果我在弹性豆茎上使用预定义的Tomcat env,一切都很好,但我的目标是使用Javaenv。

当我安装我的应用程序时,它的状态变得降级,当我试图访问url时,它的状态变成502。

在当地,一切都很完美。

我在应用程序中更改了端口。属性设置为5000,但没有帮助。我找到了一个建议,建议对TCP端口5000“0.0.0.0/32”的入站使用安全规则,但这对eather没有帮助。

以下是我的pom.xml依赖项:


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

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.6.1</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

application.properties:

spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
server.port=5000

主要Java类:

@SpringBootApplication
public class DemowebApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemowebApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(DemowebApplication.class, args);
    }

}

AWS错误日志:

2019/05/07 21:04:45 [error] 7827#0: *19 connect() failed (111: Connection refused) while connecting to upstream, client: 91.232.158.8, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5000/", host: "my-endpoint-tst.us-east-2.elasticbeanstalk.com"
2019/05/07 21:04:46 [error] 7827#0: *19 connect() failed (111: Connection refused) while connecting to upstream, client: 91.232.158.8, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:5000/favicon.ico", host: "my-endpoint-tst.us-east-2.elasticbeanstalk.com", referrer: "my-endpoint-tst.us-east-2.elasticbeanstalk.com/"

我怀疑问题出在我的Tomcat配置上,但我所有的实验都没有帮助。


共有1个答案

唐法
2023-03-14

我也有类似的问题。我会将JAR加载到Elastic Beanstalk,当我尝试访问URL时,会得到502 Apache错误,状态为降级。在本地,我被设置为端口8080,但当我试图通过我的URL访问它时,我得到了502。我的问题是:

1) 我没有输出和上传脂肪。当我导出JAR文件时,它来自我的IDE。我知道你说过你不能用。但是要确保在导出项目的同时,也从Maven导出了所有依赖项。

2)这可能比答案的第一部分有更大的帮助,但是即使我把端口放在application.properties,它也没有拉到弹性豆茎实例。为了解决这个问题,我成功地进入了AWS中的管理控制台,进入了我的豆茎实例,并进入了配置选项卡。

在“配置”选项卡上有一个“软件”部分,在该部分中,转到“环境属性”。在环境属性的名称部分,输入SERVER\u PORT,在值部分,输入5000。单击apply并让实例重新启动。

 类似资料:
  • 我正在heroku上部署我的rails应用程序,我遇到了一个问题。 我得到这个错误 2015-04-28T05:10:29.159894 00:00 heroku[router]: at=info方法=GET路径="/欢迎/索引"主机=still-dawn-6484.herokuapp.comrequest_id=45bf4295-d7f0-4788-9f4d-be35cce41aa1 fwd="

  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • 当我在glassfish 4.1中部署war文件时,会出现以下异常

  • 我是云提供商的初学者,我有一个网站要部署。该网站使用PHP、HTML、CSS和Javascript创建,并使用在NodeJS上开发的API访问数据库。 有没有办法在一个AWS弹性豆茎应用程序上部署所有这些(Inteface+NodeJS API)?或者我应该只在AWS Elastic Beanstalk上部署API,而将网站的界面与其他AWS解决方案一起部署,例如Amazon S3上的静态网站。

  • 尝试在Heroku云中部署Spring Boot应用程序,但编译java应用程序时出现错误,但在我的本地计算机中运行良好。