Spring boot 项目 发送GET 请求 使用 @GetMapping 报Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported] 错误 我看了请求头 我选择的GET请求但是浏览器发送的是,DELETE请求,我也尝试改过资源路径,把其他方法注释掉,只留一个,直接找不到资源路径了。
接口测试工具apifox
maven版本3.9.4
Spring boot版本 2.7.14
java版本11
<?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.7.14</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.kk</groupId>
<artifactId>demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo1</name>
<description>demo1</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.kk.demo1.controller;
import com.kk.demo1.mapper.deptMapper;
import com.kk.demo1.pojo.Dept;
import com.kk.demo1.pojo.Result;
import com.kk.demo1.service.deptService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/depts" ) // 抽取路径 默认次类下面的路径都是从 /depts 开始的
public class DeptController {
@Autowired
private deptService deptService;
@GetMapping
public Result selectAll() {
log.info("查询全部部门");
List<Dept> depts = deptService.selectAll();
return Result.success(depts);
}
@GetMapping("/one/{id}")
public Result selectOne (@PathVariable("id") Integer id){
// 查询单个部门
log.info("单个部门查询");
Dept dept = deptService.selectOne(id);
return Result.success(dept);
}
@DeleteMapping("/{id}")
public Result deleteDept( @PathVariable("id") Integer id){
// 删除部门
deptService.deleteDept(id);
return Result.success();
}
@PostMapping
public Result insertDept(@RequestBody Dept name){
// 插入部门
deptService.insertDept(name);
return Result.success();
}
@PutMapping
public Result upDateDept(@RequestBody Dept name){
// 更新部门
deptService.upDateDept(name);
List<Dept> depts = deptService.selectAll();
return Result.success(depts);
}
}
报错截图,还有你前段发送请求的代码看看
这是前端请求问题,和后端没关系了,把前端代码展示下看看,在前端找原因
【以下回答由 GPT 生成】
根据问题描述,出现了HTTP请求方法不支持的错误。报错信息显示浏览器发送的是DELETE请求,而期望的是GET请求。已经排除了请求头的问题,并且进行了尝试修改资源路径和注释其他方法的操作,但问题仍然存在。使用的接口测试工具是apifox,maven版本是3.9.4,Spring Boot版本是2.7.14,java版本是11。根据这些信息,可以确定问题可能是在接口定义和请求发送上出现了一些问题。
在Spring中,使用@GetMapping
注解来处理GET请求。确保在方法上使用了@GetMapping
注解,并且没有使用其他错误的注解。
@GetMapping("/path")
public String handleGetRequest() {
// Method logic here
}
如果使用了其他的注解,例如@PostMapping
或者@DeleteMapping
,就会出现请求方法不支持的错误。
检查路径是否与接口定义的路径匹配。确保在@GetMapping
注解中指定了正确的路径。
@GetMapping("/path")
如果路径不正确,请求将无法找到对应的资源。
检查pom.xml
文件中是否添加了spring-boot-starter-web
依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
如果没有添加该依赖,Spring Boot将无法处理HTTP请求。
使用apifox进行接口测试时,确保选择了GET请求方式。检查apifox中是否选择了正确的请求方式,以及是否正确设置了请求头信息。
根据问题描述和分析,可能的解决方案包括确保方法上使用了正确的注解,检查接口路径是否正确,添加相关依赖,以及检查请求发送方式。根据实际情况逐一排查解决方案,并根据具体情况调整相应的配置和代码。如果问题仍然存在,可能需要进一步检查其他相关配置或调试代码。希望以上解决方案对您有所帮助!
【相关推荐】