HttpMediaTypeNotAcceptableException:找不到可接受的表示。什么时候使用特殊网址

时间:2016-06-29 11:29:54

标签: spring-mvc

    @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",它就会运作良好。

我希望有人能看到造成这个问题的原因。

2 个答案:

答案 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-negotiationhttp://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)