@RequestMapping(value = "/servers/{domain}", method = RequestMethod.GET)
public Server getMailServer(@PathVariable("domain") String domain)
Server server = null;
try {
server = getServerByDomain(domain);
}
catch(Exception e){
}
return server;
}
当我致电" http://localhost:8080/server/hotmail.com"使用HttpClient Get方法,变量域的值是" hotmail",而不是" hotmail.com"。我得到了错误: HttpMediaTypeNotAcceptableException:找不到可接受的表示。
但如果我打电话给" http://localhost:8080/server/hotmail",它就会运作良好。
我希望有人能看到造成这个问题的原因。
答案 0 :(得分:1)
这可能与我遇到的问题相同(也是这个人:https://stick2code.blogspot.co.at/2014/03/solved-orgspringframeworkwebhttpmediaty.html)
我的服务提供文件操作,即/files/check/foo.txt
我总是得到一个HttpMediaTypeNotAcceptableException,我的休息处理程序从未被实际调用过。
问题是,Spring有一个功能,它试图通过路径扩展来检测请求的内容类型。所以.com可能意味着一个COM文件。 (请参阅http://docs.spring.io/spring/docs/4.3.3.RELEASE/spring-framework-reference/htmlsingle/#mvc-config-content-negotiation和http://docs.spring.io/spring/docs/4.3.3.RELEASE/spring-framework-reference/htmlsingle/#mvc-config-path-matching)
我的最小@Config修复:
func()
答案 1 :(得分:0)
将您的@RequestMapping
更改为以下内容:)
@RequestMapping(value = "/servers/{domain:.+}", method = RequestMethod.GET)