spring mvc RESTful controller中返回404而不是406的内容类型无效

spring mvc RESTful controller中返回404而不是406的内容类型无效,rest,spring-mvc,Rest,Spring Mvc,我正在使用Spring3.0.5创建一个RESTful控制器。我已经指定了我愿意接受的内容类型,但是发现如果请求与其他内容一起发送,我会得到404而不是预期的406。有人能指出我遗漏了什么吗 @Controller @RequestMapping("/hello") public class HelloWorldController { @RequestMapping(value="/{name}", method=RequestMethod.GET, headers="accept=

我正在使用Spring3.0.5创建一个RESTful控制器。我已经指定了我愿意接受的内容类型,但是发现如果请求与其他内容一起发送,我会得到404而不是预期的406。有人能指出我遗漏了什么吗

@Controller
@RequestMapping("/hello")
public class HelloWorldController {

    @RequestMapping(value="/{name}", method=RequestMethod.GET, headers="accept=application/json")
public @ResponseBody Map<String, String> sayHello(@PathVariable("name") String username) {
    Map<String,String> result = new HashMap<String,String>();
    result.put("greeting", "Hello "+username);
    return result;
}
}
@控制器
@请求映射(“/hello”)
公共类HelloWorldController{
@RequestMapping(value=“/{name}”,method=RequestMethod.GET,headers=“accept=application/json”)
public@ResponseBody映射sayHello(@PathVariable(“name”)字符串用户名){
映射结果=新的HashMap();
结果。输入(“问候语”、“你好”+用户名);
返回结果;
}
}
如果我发送了一个标题为“accept=application/json”的请求,一切正常。但是,标题为“accept=”text/xml”的请求返回404

谢谢


--约翰

以下是我的评论,作为对完整性的回答

我建议您升级到3.1版或更高版本。这些处理程序处理问题似乎已经解决


相关问题:

让我们看看您在哪里(哪个URL)发出请求以及使用什么标题。您的控制器是否有自己的
@RequestMapping
?URL类似于:标题为accept=text/xml。控制器有自己的RequestMapping,例如
@controller@RequestMapping(“/hello”)公共类HelloWorldController{…}
我可能错了,但我相信这可能是3.0版本中的一个问题/错误,在3.1+中已修复/更改。您可以升级并重试吗?感谢Sotirios,似乎就是这样。我升级到Spring 3.2.6,现在看到了我期望的行为。