覆盖HEAD请求的内容类型

时间:2016-06-29 22:48:33

标签: http response content-type jersey-2.0 jboss6.x

我有一个在进行实际GET调用之前正在进行HEAD调用的Web应用程序。 GET方法生成application / json。当出现错误说(500)时,HEAD的内容类型变为text / html。对于相同的错误,GET的内容类型仍然是application / json。有没有办法覆盖HEAD中返回的内容类型。这就是我如何形成回应。这是一个jersery实现。

Response.status(errorStatus)entity( some json).build()

1 个答案:

答案 0 :(得分:0)

和Manish。

我打赌org.apache.catalina.valves.ErrorReportValve正在压缩你的回复。

查看"报告"该类的方法。如果响应是4xx或5xx并且它没有内容(即没有实体 - HEAD响应没有)(第153行)那么...... ErrorReportValve::report::153

content-type设置为text/html(第283行)。你的反应刚刚被压扁了,但...... ErrorReportValve::report::283

如果响应已经提交,则ErrorReportValve不会对响应执行任何操作(第102行)。 ErrorReportValve::invoke::102

那么,也许尝试创建一个servlet过滤器,在ErrorReportValve压缩它之前提交响应?或许像https://gist.github.com/danmork/bf8c468141fa004298928a1ad9b31746这样的东西?