**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
昨天关门了。
改进这个问题
我用springboot在java中创建了一个restapi,但是当我尝试运行它时,我得到了一个错误,它已经将一个方法从一个控制器类Map到get方法,并且它不能Map另一个方法,即使它们有不同的名称。前任: /drugs/filtered/{amount}
以及 /drugs/report
这是密码
@RestController
@AllArgsConstructor
public class DrugController {
private DrugService service;
private DrugConverter drugConverter;
@RequestMapping(name = "/drugs", method = RequestMethod.POST)
public DrugDTO handleAddDrug(@RequestBody DrugDTO dto) {
Drug addedDrug = service.addDrug(
dto.getId(),
dto.getName(),
dto.getRecommendedAmount());
return drugConverter.convertModelToDto(addedDrug);
}
@RequestMapping(name = "/drugs", method = RequestMethod.PUT)
public DrugDTO handleUpdateDrug(@RequestBody DrugDTO dto) {
Drug updated = service.updateDrug(
dto.getId(),
dto.getName(),
dto.getRecommendedAmount());
return drugConverter.convertModelToDto(updated);
}
@RequestMapping(name = "/drugs/{id}", method = RequestMethod.DELETE)
public DrugDTO handleDeleteDrug(@PathVariable Integer id) {
Drug deletedDrug = service.deleteDrug(id);
return drugConverter.convertModelToDto(deletedDrug);
}
@GetMapping(name = "/drugs/{id}")
public DrugDTO handleGetDrug(@PathVariable Integer id) {
Drug drug = service.getDrug(id);
return drugConverter.convertModelToDto(drug);
}
@GetMapping(name = "/drugs")
public DrugsDTO handleGetAllDrugs() {
Collection<Drug> drugs = service.getAllDrugs();
return new DrugsDTO(drugs.stream().map(drugConverter::convertModelToDto).collect(Collectors.toSet()));
}
@GetMapping(name = "/drugs/filtered/{amount}")
public DrugsDTO handleGetDrugsWithDoseBiggerThan(@PathVariable Integer amount) {
Collection<Drug> drugs = service.getDrugsWithDoseBiggerThan(amount);
return new DrugsDTO(drugs.stream().map(drugConverter::convertModelToDto).collect(Collectors.toSet()));
}
@GetMapping(name = "/drugs/report")
public DrugsDTO handleGetDrugsWithDosesOf() {
Collection<Drug> drugs = service.getDrugsWithDosesOf();
return new DrugsDTO(drugs.stream().map(drugConverter::convertModelToDto).collect(Collectors.toSet()));
}
}
这就是错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'drugController' method BloodManagement.ServerSide.Controller.DrugController#handleGetDrug(Integer) to {GET []}: There is already 'drugController' bean method BloodManagement.ServerSide.Controller.DrugController#handleGetAllDrugs() mapped.
1条答案
按热度按时间zmeyuzjn1#
尝试在所有Map中将参数名称更改为value。
即。:
变成