繁体   English   中英

错误:在Spring Data Rest中为HTTP路径映射的模糊处理程序方法

[英]Error: Ambiguous handler methods mapped for HTTP path in spring data rest

这是代码:

@Import(Appconfig.class)
@RestController
//@RequestMapping("/api/destination/find")
public class RestApi01_Controller {

    @Autowired
    public CountryRepo Country_Repository;

    @Autowired
    public CityRepo City_Repository;

    @Autowired
    public AirportRepo Airport_Repository;

    @Autowired
    public ResortRepo  Resort_Repository;


   @RequestMapping(value="/api/destination/find/{city}", method=RequestMethod.GET)
    public List<Master_City> getCity(@PathVariable String city) {

        return City_Repository.findByCityLikeIgnoreCase(city);
  }

    @RequestMapping(value="/api/destination/find/{airportname}", method=RequestMethod.GET)
    public List<Master_Airport> getAirportname(@PathVariable String airportname) {

        return Airport_Repository.findByAirportnameLikeIgnoreCase(airportname);
  }

  @RequestMapping(value="/api/destination/find/{resortname}", method=RequestMethod.GET)
    public List<Master_Resort> getResortname(@PathVariable String resortname) {

        return ResortRepository.findByResortnameLikeIgnoreCase(resortname);
  }
}

您的REST端点基本上指向相同的URI模式。

以前两个为例,

/api/destination/find/{city}

/api/destination/find/{airportname}

由于{city}和{airportname}是占位符,并且URI都是HTTP GET方法,因此当调用/api/destination/find/london时,Spring无法确定要使用哪个API。

代替此,使用请求参数。 像这样

/api/destination/find?airport={airportname}

/api/destination/find?city={city}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM