`
fsk215
  • 浏览: 41246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Response already committed.

阅读更多
在生产环境中,系统日志非常高频度地出现下面的告警信息:
[09-11-26 16:24:26:389 GMT+08:00] 00185db6 SRTServletRes W   WARNING: Cannot set header. Response already committed.

这个是WAS抛出的警告,意思是http response已经提交(通过调用了response.flushBuffer,这时准备或者已经发送部分数据到客户端了),而这时候还有程序试图去改写http 报文的头部信息。
我们的程序应该不会去显式的调response.flushBuffer,不过有几个地方很容易出现这样的问题:

1)response.sendRedirect()重定向跳转的地方
调了重定向,但是没有return;下面的程序改写了header
2)<jsp:include page="××"  flush="true" />
这里的flush意思就是是否立即输出include page指定的html,如果在这段代码之后,还有其他代码试图改写header,比如调用response.setHeader,或者下面还有include 其他page,而其他page最开始,习惯性的通过<%@ page 指令修改了某些和header有关的内容,这个在我们代码里最有可能
解决办法:找到这样的代码,最好把flush="true" 去掉,或者确保它下面没有其他代码会去修改header
分享到:
评论

相关推荐

    Websphere下部署与tomcat程序配置的差异

    Response already committed. 的异常。解决方法是升级到 6.1.0.17 版本。 9. 修改 Websphere 的 JSP 编译 JDK 版本 修改 Websphere 的 JSP 编译 JDK 版本可以解决一些问题。修改方法是,找到发布之后的应用目录,...

    Cannot forward after response has been committed

    "Cannot forward after response has been committed" 是一个在Java Web开发中常见的错误,通常与Servlet、Filter或控制器逻辑有关。这个错误表明服务器已经完成了对HTTP响应的处理,并将其发送到客户端,然后试图...

    servlet2.4doc

    Returns a boolean indicating whether the named response header has already been set. contextDestroyed(ServletContextEvent) - Method in interface javax.servlet.ServletContextListener Notification ...

    Java常见异常

    11. **java.io.IOException: response already committed** HTTP响应已提交,无法再次修改。确保在HTTP响应被发送给客户端后不再尝试修改它。 12. **java.lang.ClassCastException: org.apache.catalina.util....

    a project model for the FreeBSD Project.7z

    A project model for the FreeBSD Project Niklas Saers ... ...Table of Contents Foreword 1 Overview 2 Definitions ...3-1....3-2....4-1....4-2....4-3....5-1....6-1....6-2....6-3....6-4....6-5....6-6....6-7....6-8....6-9....8-1....Up until now, the FreeBSD ...

Global site tag (gtag.js) - Google Analytics