繁体   English   中英

简单的springboot不适用于aws

[英]simple springboot not work on aws

我使用示例默认项目创建了一个弹性benstalk,并且工作正常,但是在我上载spring boot项目之后,它不起作用,但是在localhost上运行良好。 为了更好地检查错误,我做了一个非常简单的spring boot项目,仅具有Web依赖项和一个简单的终结点,但尚无法使用

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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


</project>

我仅创建此类

package com.example.demo.Testing;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestingAWS {

    @GetMapping()
    public ResponseEntity<?> sayOk(){
        return new ResponseEntity<>(HttpStatus.OK);
    }
}

和@SpringBootApplication

package com.example.demo;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication public class DemoApplication {

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

我尝试在application.properties中没有配置的情况下运行,并使用:

server.port=8080

我发动战争

mvn clean install

并且在mvn spring-boot:runmvn spring-boot:run以在localhost上部署并正常工作后,端点返回状态200

但是我在控制台上给了这个错误

2018-04-18 16:30:55.468  INFO 19224 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-04-18 16:30:55.469  INFO 19224 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

并且此应用程序不适用于AWS。 错误日志:

https://elasticbeanstalk-us-east-1-770207322946.s3.amazonaws.com/resources/environments/logs/tail/e-vnewtwgp2g/i-0f4edca74953a1e67/TailLogs-1524080692420.out?AWSAccessKeyId=AKIAIOUOORORMVUTXireJUHQ&167 2B0pJqEgnHNooejNEa9NU%3D

我放了一个链接,因为它很大,而且stackoverflow说我超出了caracteres限制

但健康地说服务器还可以

在此处输入图片说明

但是如果尝试执行请求,则会出现此错误:

<html>
    <head>
        <title>502 Bad Gateway</title>
    </head>
    <body bgcolor="white">
        <center>
            <h1>502 Bad Gateway</h1>
        </center>
        <hr>
        <center>nginx/1.12.1</center>
    </body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->

您创建了@SpringBootApplication吗?

您是否尝试过更换? 只是为了查看方法是否生成问题?

如果只想返回HttpStatus,则应该将方法更改为:

public HttpStatus sayOk(){
   return HttpStatus.ok;
}

这个:

2018-04-18 16:30:55.468  INFO 19224 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-04-18 16:30:55.469  INFO 19224 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

不是错误。 这意味着Spring Boot正在使用端点/error注册一个控制器。 是春天启动的默认行为,如解释在这里

如果您在配置中未指定任何自定义实现,则Spring Boot会自动注册BasicErrorController bean。

您还可以看到日志级别是INFO而不是ERROR

Spring Boot可能不是错误502 Bad Gateway的原因。 有许多原因导致此错误。 我建议您创建另一个问题,重点放在您的AWS设置上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM