没有找到带有URI的HTTP请求的映射

时间:2015-11-05 08:16:31

标签: java spring web-services spring-mvc spring-restcontroller

您好,我是实施Spring REST Web Service的新手,这是导致我的错误的原因。

这是我的代码

  @RequestMapping(value = "/message/{regID}/name/{name}", method = RequestMethod.GET, headers = "Accept=application/json")
    public String getMessage(@PathVariable String regID, @PathVariable String name) {
        return "Hello Alvin!" + regID + " " + name;
    }

我想使用网络浏览器调用它,但我无法成功调用它但是当我调用单个参数时,另一个RequestMapping已成功完成..这是我成功调用的RequestMapping

@RequestMapping(value = "/country/{id}", method = RequestMethod.GET, headers = "Accept=application/json")
public Country getCountryById(@PathVariable int id) {
    List<Country> listOfCountries = new ArrayList<Country>();
    listOfCountries = createCountryList();

    for (Country country : listOfCountries) {
        if (country.getId() == id)
            return country;
    }

    return null;
}
  

或者我如何为RequestMapping实现多个参数..?

2 个答案:

答案 0 :(得分:1)

您可能正在使用InternalResourceViewResolver,在这种情况下,返回String的方法会将返回的值解释为将在视图中指定的位置内搜索的视图名称解析器。您的找不到映射可能是指框架找不到与您返回的内容相匹配的视图名称

由于您的意图似乎只是返回文字,因此您应该使用@ResponseBody进行额外的方法,然后将您的文字添加到响应正文,而不是将其解释为视图名称,所以

@ResponseBody 
public String getMessage(@PathVariable String regID, @PathVariable String name)

否则,你的映射就好了

答案 1 :(得分:0)

我有多个路径变量,您需要在@PathVariable中指定标​​识符:

@RequestMapping(value = "/message/{regID}/name/{name}", method = RequestMethod.GET, headers = "Accept=application/json")
    public String getMessage(@PathVariable("regID") String regID, @PathVariable("name") String name) {
        return "Hello Alvin!" + regID + " " + name;
    }