[常见FAQ] 日志里老是报 Response already committed

crabdave 2008-07-15
在我们系统的webshere日志常出现这种情况:
WARNING: Cannot set header. Response already committed
接着页面就出现“该页无法显示”了。
不知道这是为什么,对于Response 我们能不能在websphere中做
一些设置让它迟一些做commit啊?
qiuye402 2008-07-21
WARNING: Cannot set header. Response already committed
应该不影响,出现“该页无法显示”可能不是这个问题引发的。
你应该检查一下是否有无效链接,比如,某个js文件、图片等等,在路径上根本找不到,对于was5等版本中有这个问题,页面中如果某个链接是无效的,就会导致真个页面出现“该页无法显示”。而tomcat就不会。
crabdave 2008-07-22
没有无效连接,这些页面一直都很正常,只是在数据量很大时,查询要花不少时间,页面得不到响应的数据时会出现这种情况;再说我们用的是was6。
programmer 2008-07-24
以前做开发的时候碰到过这个问题,也查了很多资料,不影响功能就是后台会抛出来一系列恶心的错误异常,但没有找到解决办法。主要原因是response已经返回了,如果这时候servlet 的response再返回 就会抛这样的异常,举个简单的例子,如果在struts的action 实现一个下载报表的功能,下载完好再return forward 那么就回抛这样的一个异常。如果没有那种两次返回请求,那么一般不会出现这样的问题。
crabdave 2008-07-24
programmer 写道
以前做开发的时候碰到过这个问题,也查了很多资料,不影响功能就是后台会抛出来一系列恶心的错误异常,但没有找到解决办法。主要原因是response已经返回了,如果这时候servlet 的response再返回 就会抛这样的异常,举个简单的例子,如果在struts的action 实现一个下载报表的功能,下载完好再return forward 那么就回抛这样的一个异常。如果没有那种两次返回请求,那么一般不会出现这样的问题。



刚又地震了。关健是我们这个影响功能了,用户要查询的数据长时间得不到响应,页面直接报“该页无法显示”。有没有办法把response返回的时间设置长一些呢?
programmer 2008-07-25
servlet 处理完后,系统才会执行 response 返回请求应答,你到底是一个什么应用场景,能否把相关的代码贴出来。
crabdave 2008-07-25
programmer 写道
servlet 处理完后,系统才会执行 response 返回请求应答,你到底是一个什么应用场景,能否把相关的代码贴出来。



代码还是不要贴了!这么跟你说吧,在业务层进行查询的时候,如果数据库中的数据量小查询速度快,一切正常;如果此时数据库中的数据量大,查询速度缓慢,就会出现这种情况。业务层用Spring框架,视图层使用的是struts框架。
angushj 2008-08-01
遇到一样的问题了~
我用的是Spring的mvc,页面如果太多<form:input>之类的标签就会出问题。
只要页面的<form:input>标签不超过10个,页面还是可以打开,不过第一次loding贼慢,大概要个3~4分钟,但第二次访问的速度就正常了~

现在用的是spring2.0.8和was6.1的network版本
还有一个情况,刚开始的时候是所有带<form:input>的表单都打不开,后来把jsp的文件头换了一下就能打开一部分了,只是第一次还是很慢~不知道有没有关系。

更换前的头:
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
</head>

更换后的头:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
Global site tag (gtag.js) - Google Analytics