错误406生成PNG响应时不可接受

时间:2013-11-18 16:58:02

标签: java spring spring-mvc spring-annotations

我对生成PNG图像响应的方法有疑问。

@RequestMapping(value = "/thumb/{id}.png", produces = "image/png")
@ResponseBody
public char[] thumb(@PathVariable UUID id)
{
    // action logic here

    return CatalogController.PLACEHOLDER_THUMB;
}

但是我无法访问此操作 - 它正确执行(我在数据库中看到逻辑效果),但客户端获得 406 Not Acceptable

以下是我模拟请求的方式(在Chrome和Internet Explorer中也是如此):

$ wget "http://localhost:8080/thumb/13164e6b-fc0f-4c67-a7d3-e2c56224384b.png" -O - --header="Accept: image/png"
--2013-11-18 18:37:30--  http://localhost:8080/thumb/13164e6b-fc0f-4c67-a7d3-e2c56224384b.png
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8080... connected.
HTTP request sent, awaiting response... 406 Not Acceptable
2013-11-18 18:37:30 ERROR 406: Not Acceptable.

修改

以下是浏览器中显示的更详细说明:

  

description此请求标识的资源只能根据请求“accept”headers()生成具有不可接受特征的响应。

1 个答案:

答案 0 :(得分:0)

好的,感谢大家的帮助,但答案更为微不足道 - 根本不可能使用char[]作为回复内容。

切换到byte[],一切正常!

(可能可以为byte[]注册处理程序,但我不需要它,因此无法确认)。