Spring MVC Webアプリケーションがあります。今私はSpring RESTを使ってWebサービスとして私のサービスを公開したいと思っています。これを行うには、URL値に基づいてWebリクエストとRESTリクエストを処理する必要があります。以下では、以下に示す3つのコントローラ、MasterController、PatientController、PatientRESTControllerを使って同じことを試みました。簡潔さのためにメソッドをスキップしました。Spring MVCでのWebリクエストとRESTリクエストのリクエストマッピングの分離
@Controller("/")
public class MasterController {
@RequestMapping("/web")
public ModelAndView webApplication(){
return new ModelAndView("redirect:/web/patient");
}
@RequestMapping("/rest")
public ModelAndView webService(){
return new ModelAndView("redirect:/rest/patient");
}
}
@Controller("/web/patient")
public class PatientController {
@GetMapping("")
public ModelAndView patientHome(){
ModelAndView mv = new ModelAndView();
mv.setViewName("patienthome");
return mv;
}
}
@RestController("/rest/patient")
public class PatientRESTController {
@GetMapping("")
public List getAllPatientsREST(){
return patientService.findAll();
}
}
私のWebアプリケーションを起動するには、私はエラーを取得しています:
Ambiguous mapping. Cannot map '/rest/patient' method public java.util.List PatientRESTController.getAllPatientsREST() to {[],methods=[GET]}: There is already '/web/patient' bean method
私はRESTやWebアプリケーションのための別のURLマッピングを作成するにはどうすればよいです?