@DeleteMapping不起作用。错误消息:org.springframework.web.HttpRequestMethodNotSupported异常:不支持请求方法"DELETE"



所以我必须制作一个CRUD应用程序,当在postman上运行时,显示的错误是405,Method not allowed。在尝试"spring.mvc.hiddenmethod.filter。启用:true"在应用程序中。当使用postman.

进行测试时,代码仍然显示相同的错误。这是控制器

@RestController
@RequestMapping("/employees")
public class EmpController {

@Autowired
private EmpService empService;
@Autowired
private EmpRepository empRepo;
@GetMapping("")
public List<Employee> getAllEmployees()
{
return empService.getAllEmployees();
}

@PostMapping("")
public void addEmployee(@RequestBody Employee emp) 
{
empService.addEmployee(emp);
}

@PutMapping("/{id}")
public void updateEmployee(@PathVariable String id,@RequestBody Employee emp)
{
empService.updateEmployee(id,emp);
}

@DeleteMapping(path="/{id}")
public void deleteEmployee(@PathVariable String id) {
System.out.println("Delete function");
empService.deleteEmployee(id);

}
}

这是服务

@org.springframework.stereotype.Service
public class EmpService {
@Autowired
public EmpRepository empRepo;

public List<Employee> getAllEmployees(){
List<Employee> employees = new ArrayList<>();
empRepo.findAll().forEach(employees::add);
return employees;
}
public void addEmployee(Employee emp) {
empRepo.save(emp);
}
public void updateEmployee(String id, Employee emp) {
empRepo.save(emp);

}
public void deleteEmployee(String id) {
empRepo.deleteById(id);
}
}

在尝试其他put post和get方法时,代码工作得很好。但这是我发现405错误的唯一地方。

试试这个

@DeleteMapping(path="/{id}")
public void deleteEmployee(@PathVariable("id") String id) {
System.out.println("Delete function");
empService.deleteEmployee(id);

}

你能把你的请求URL放在这里吗?也许你用错了网址。正确的URL应该是:

http://{host}:{port}/employees/1

1为要删除的id。

相关内容

最新更新