SpringBoot接口测试Postman报ECONNREFUSED错误,求排查问题
SpringBoot API无法访问问题排查
我尝试在SpringBoot中测试API,但无法通过Postman获取数据。使用GET请求访问URL http://localhost:8080/division时,Postman抛出错误:Error: connect ECONNREFUSED 127.0.0.1:8080。我想获取表格数据并以JSON格式返回,以下是我的实现代码:
实体类
@Data @AllArgsConstructor @NoArgsConstructor @Entity public class Division { @Id private String id; private String division; @OneToMany(mappedBy = "division", cascade = CascadeType.ALL, orphanRemoval = true) private List<District> districts = new ArrayList<>(); }
仓库接口
public interface DivisionRepository extends JpaRepository<Division, String> { }
服务类
@Service public class DivisionService { @Autowired DivisionRepository divisionRepository; public List<Division> getAllDivision(){ return divisionRepository.findAll(); } }
控制器类
@RestController @RequestMapping("/division") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") public class DivisionController { @Autowired DivisionService divisionService; @GetMapping List<Division> getAlldivisions(){ return divisionService.getAllDivision(); } }
问题诊断与解决思路
你遇到的Error: connect ECONNREFUSED 127.0.0.1:8080是连接被拒绝的错误,核心原因是SpringBoot服务没有在8080端口正常启动,或者你访问的端口与服务实际运行端口不匹配。结合你的代码,逐一排查:
1. 优先检查服务是否正常启动
- 查看SpringBoot应用启动日志,确认是否有报错(比如数据库连接失败、JPA映射错误):
- 你使用了JPA,必须在
application.properties/application.yml中配置数据库信息,示例:spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名 spring.datasource.username=数据库用户名 spring.datasource.password=数据库密码 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true - 如果数据库配置错误,服务会启动失败,自然无法接收请求。
- 你使用了JPA,必须在
2. 确认服务运行端口
- 默认情况下SpringBoot用8080端口,但如果配置文件中修改了
server.port(比如设为8081),你需要访问对应的端口,比如http://localhost:8081/division。
3. 代码中的非致命但需规范的问题
这些问题不会导致连接拒绝,但可能影响后续数据返回:
- 控制器方法
getAlldivisions缺少public修饰符,虽然Spring可以识别,但建议加上:@GetMapping public List<Division> getAlldivisions(){ return divisionService.getAllDivision(); } - 字段注入
@Autowired建议替换为构造注入,更符合Spring规范:private final DivisionService divisionService; public DivisionController(DivisionService divisionService) { this.divisionService = divisionService; } - 确认
District实体类是否正确配置了与Division的关联:
如果缺少这个配置,JPA的@Entity public class District { // 其他字段 @ManyToOne @JoinColumn(name = "division_id") private Division division; // getter/setter }OneToMany关联会失效,导致返回的Division数据中districts字段为空。
内容的提问来源于stack exchange,提问作者Mahadi Hasan
相关产品推荐
相关产品推荐

