7

在处理请求后添加/更新响应标头时,我收到以下警告:

com.ibm.ws.webcontainer.srt.SRTServletResponse setHeader SRVE8094W: WARNING: Cannot set header. Response already committed. 

我正在尝试通过在postHandle 代码弹簧拦截器之后或之后调用httpServletResponse.setHeader()httpServletResponse.addHeader()从 servlet 过滤器中调用标头来操作标头。filterChain.doFilter()

我在 websphere 8.5 上使用 spring 3.x 运行我的 webapp 时遇到了这个问题。

该问题未在 tomcat 7.0 上重现,因此我的猜测是它与 Websphere 相关。该问题不会在纯 servlet 应用程序中重现,因此我的猜测是它与 Spring 相关。

我熟悉

ShallowEtagHeaderFilter 在 WAS8 应用服务器下不起作用

无法在 JSP 中设置标题。响应已提交

但我正在寻找一个“更清洁”的解决方案。

有人可以帮我吗?

4

1 回答 1

-1

Websphere 严格遵循 J2EE 标准,因此在 Tomcat 中工作的任何东西都不一定在 Websphere 中工作。在我的项目中,我遇到了很多 Websphere 特有的异常/错误,但在 Tomcat 中却是一种魅力。我建议你在控制器中设置标题。另一种替代方法是不刷新控制器中的输出流(如果您已明确完成)。

于 2013-11-19T10:16:15.400 回答