首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerized应用程序的API无法访问

Dockerized应用程序的API无法访问
EN

Stack Overflow用户
提问于 2021-10-15 09:39:38
回答 1查看 267关注 0票数 0

我正面临着一个恼人的问题,希望有人能给我一个提示。

我写了一个Spring应用程序,它在本地运行(不是在Docker中),然后我有Kafka和Docker容器中的动物园管理员。通讯运作得很好。

现在,我修改了Spring应用程序,当我尝试从主机上调用它(http://localhost:8080/kafka/health-check)时,我得到了404。

Java类:

代码语言:javascript
复制
@org.springframework.web.bind.annotation.RestController
@RequestMapping("kafka")
public class RestController {
    (...)
    @GetMapping("health-check")
    public ResponseEntity<Object> healtCheck() {
        return ResponseEntity.ok().build();
    }
}

Docker文件公开端口:

代码语言:javascript
复制
FROM openjdk:11
EXPOSE 8080
ADD target/spring-boot-kafka-producer-example-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

码头工人也是这样:

代码语言:javascript
复制
services:
  zookeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: localhost
      # Connect to Zookeper
      KAFKA_ZOOKEEPER_CONNECT: zookeper:2181
  spring-boot-app:
    image: spring-boot-app
    container_name: spring-boot-app
    ports:
      - "8080:8080"

即使当我跑步的时候,我仍然能得到404:

代码语言:javascript
复制
docker exec -it spring-boot-app curl spring-boot-app:8080/kafka/health-check

我既不能从Docker外部调用API,也不能在Docker容器中调用API,所以我肯定在某个地方遗漏了一些小东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 12:33:51

问题是这个罐子不是最新的。出于某种原因,IntelliJ会执行应用程序,但不会生成jar。运行mvn clean install解决了这个问题

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

https://stackoverflow.com/questions/69582750

复制
相关文章

相似问题

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