首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@GetMapping("/")在弹性豆柄中不起作用,而是在本地工作

@GetMapping("/")在弹性豆柄中不起作用,而是在本地工作
EN

Stack Overflow用户
提问于 2021-11-08 18:20:00
回答 2查看 189关注 0票数 0

我的橡皮筋灌肠剂的健康状况为severe。我相信这是因为我不负责健康检查。在我的日志中可以看到这一点:

代码语言:javascript
复制
/var/log/nginx/access.log
----------------------------------------
172.31.75.161 - - [08/Nov/2021:13:21:41 +0000] "GET / HTTP/1.1" 404 116 "-" "ELB-HealthChecker/2.0" "-"
172.31.75.161 - - [08/Nov/2021:13:21:41 +0000] "GET / HTTP/1.1" 404 116 "-" "ELB-HealthChecker/2.0" "-"
...

43 connect() failed (111: Connection refused) while connecting to upstream, client: 172.XX.XX.XX, server: , request: "GET / HTTP/1.1", upstream: "http://172.XX.XX.XX:8080/"

这是我的码头文件:

代码语言:javascript
复制
# Build stage 
# 
FROM maven:3.8.1-jdk-8 
ADD src /tmp/src
ADD pom.xml /tmp/pom.xml
RUN mvn -f /tmp/pom.xml clean package

#
# Package stage
#
FROM openjdk:8
COPY --from=0 /tmp/target/para-host-0.0.1-SNAPSHOT.jar /usr/local/lib/para.jar
EXPOSE 5000
ENTRYPOINT ["java","-jar","/usr/local/lib/para.jar"]

所以我的Spring应用程序运行在5000端口上。这工作在当地和弹性豆茎。

--我到目前为止尝试过的----我尝试使用这个依赖项添加健康检查功能:

代码语言:javascript
复制
        <dependency>
            <groupId>
                org.springframework.boot
            </groupId>
            <artifactId>
                spring-boot-starter-actuator
            </artifactId>
        </dependency>

在此之后,我能够在本地运行服务器,并按如下所示的端点:http://localhost:5000/actuator/health并获得响应:

代码语言:javascript
复制
{
    "status": "UP"
}

(这甚至是一个“身份守则”吗?)

--在我的弹性豆柄环境中,它的负载平衡器的坏了,它说我的健康检查路径是/。如果我将该值编辑为/actuator/health/,那么它只是返回到/。我试过很多次,甚至尝试删除它并创建一个新的。没什么。所以我放弃了。相反,我想,我只是让路径/返回状态代码进行健康检查。

所以我做了这个:

代码语言:javascript
复制
    @GetMapping("/")
    public ResponseEntity<String> dummyMethod() {
        return new ResponseEntity<>("Hello from Dummy-Root-Method", HttpStatus.OK);
    }

想现在,当健康检查被调用时,它将是成功的,但这也不起作用。如果我在本地运行服务器,我就能够到达/端点,但是当它在ElasticBean秸秆中运行时,它会认为路径不存在。但是,我的其他端点工作。下面是工作端点(getGroupResults)的片段,然后是非工作端点(dummyMethod):

代码语言:javascript
复制
    @GetMapping("/get-group-results")
    public ResponseEntity<String> getGroupResults(@RequestBody ObjectNode objectNode)
            throws IOException, AddressException, MessagingException {
        String groupFolder = objectNode.get("group").asText();
        String sendToEmail = objectNode.get("email").asText();
        logger.info("Attempting to get results from folder: {}", groupFolder);
        String attachmentPath = Test.getMapFromGroupFolder(groupFolder).getAbsolutePath();
        String subject = "Results from parallenium";
        MailService.sendEmailWithAttachment(sendToEmail, attachmentPath, subject);
        return new ResponseEntity<>("Successfully sent results email", HttpStatus.OK);
    }

    /**
     * Dummy response for ELB so we do not receive errors
     * 
     * @return
     */
    @GetMapping("/")
    public ResponseEntity<String> dummyMethod() {
        return new ResponseEntity<>("Hello from Dummy-Root-Method", HttpStatus.OK);
    }

这是当我试图访问弹性豆秆中的/actuator/health/端点时所得到的响应,类似于这个http://para-server.us-east-1.elasticbeanstalk.com/actuator/health

代码语言:javascript
复制
{
    "timestamp": "2021-11-08T16:56:20.785+00:00",
    "status": 404,
    "error": "Not Found",
    "path": "/"
}

同样,这在当地也是可行的。为什么?

摘要我能做什么?

为什么我不能在弹性豆柄控制台中更改到健康检查的路径?为什么根路径environment?在本地工作,而在我的弹性豆柄environment?中不能工作?

我只想让我的环境不变成红色。它运行良好,但有健康检查错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-09 00:51:54

问题是,尽管我通过EBS CLI部署了一个新版本,但实际上它并没有部署我的最新更改。如果项目中有git设置,那么它将只部署最后一次提交。因此,我不得不提交我的更改,然后重新部署它并开始工作。

票数 0
EN

Stack Overflow用户

发布于 2021-11-08 19:06:52

验证Bean秸秆正在运行您的代码的最新版本。在添加新的映射之前,可能仍然使用的是一个旋转的容器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69888172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档