You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker化Spring Boot应用后Postman访问返回404无法连接问题求助

问题描述

应用运行相关截图
Postman请求错误截图

  • 应用Docker化后无法通过Postman连接,服务日志显示应用正常启动,H2数据库可正常访问,但Postman请求返回404错误
    错误返回内容:

{
"timestamp": "2021-08-29T09:08:05.775+00:00",
"status": 404,
"error": "Not Found",
"path": "/"
}

  • 已尝试排查操作:关闭SSL配置未解决问题,本地其他应用均可正常通过Postman访问
  • 已附pom.xml和application.properties配置文件,如需Java代码可补充提供

相关配置

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.5.4</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.eazybytes</groupId>
<artifactId>accounts</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>accounts</name>
<description>Demo project for Spring Boot</description>
<properties>
   <java.version>11</java.version>
</properties>
<dependencies>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

   <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <scope>runtime</scope>
   </dependency>
   <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <optional>true</optional>
   </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>
           <configuration>
               <excludes>
                   <exclude>
                       <groupId>org.projectlombok</groupId>
                       <artifactId>lombok</artifactId>
                   </exclude>
               </excludes>
           </configuration>
       </plugin>
   </plugins>
   </build>

</project>

application.properties

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
server.port=9092

排查解决方法

返回404说明网络连通正常,只是请求的路径在应用中不存在,按以下步骤排查即可:

  1. 校验Docker端口映射
    应用配置端口为9092,启动容器时必须添加-p 9092:9092参数完成宿主机和容器的端口绑定,若映射了其他宿主机端口,Postman请求需对应使用映射后的端口。
  2. 校验请求路径
    你当前请求的是根路径/,首先确认Controller是否存在根路径的请求映射:
  • 若Controller类上标注了@RequestMapping前缀,所有请求路径都需要加上该前缀
  • 若未开发根路径接口,直接请求根路径必然返回404,可换成你实际开发的业务接口路径测试
  1. 校验上下文路径配置
    确认配置文件是否添加了server.servlet.context-path参数,若配置了该参数,所有请求路径都需要加上配置的上下文前缀
  2. 校验容器运行状态
    执行docker ps确认容器处于运行状态,执行docker logs <容器ID>查看应用启动日志,确认9092端口正常绑定、应用无启动异常

内容的提问来源于stack exchange,提问作者Seeschon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:09:04