java.io.IOException: response already committed

我写的一个从oracle数据库的blob字段中读取先前存的图片,用tomcat服务器部署没什么问题,图片能显示。但换成weblogic时报出了以下错,图片不能显示。先前在... 我写的一个从oracle数据库的blob字段中读取先前存的图片,用tomcat服务器部署没什么问题,图片能显示。但换成weblogic时报出了以下错,图片不能显示。先前在网上查了一下,大概是这么个意思:一个正常的HTTP请求已经结束了,但是你还在往out对象中写东西。
但是查了很多资料不知道怎么解决,不知道各位大侠有没有遇到这个问题,帮小弟解决解决。代码和错误见下:
错误:
<2010-8-25 下午05时08分25秒 CST> <Error> <HTTP> <BEA-101019> <[ServletContext@8660157[app:_appsdir_Oracle_Save_Open_IMG_dir module:Oracle_Save_Open_IMG path:/Oracle_Save_Open_IMG spec-version:2.5]] Servlet failed with IOException
java.io.IOException: response already committed
at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:81)
at jsp_servlet.__showimg._jspService(__showimg.java:103)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
Truncated. see log file for complete stacktrace
>
主要代码:
response.setContentType("image/jpeg");
byte[] data = (byte[]) request.getAttribute("data");
//response.reset();//weblogic,websphere会要求,tomcat等服务器要求不太严格
ServletOutputStream op = response.getOutputStream();
op.write(data, 0, data.length);
op.close();
op = null;
response.flushBuffer();
//清除输出流,防止释放时被捕获异常
out.clear();
out = pageContext.pushBody();
///////////////////////////////////////////////////////////////////////////
response.reset();我在网上查了一下,加了这句,图片就能显示出来,但是后台还是有以上的错误信息。

再次谢谢各位关注。万分着急~~~~
展开
 我来答
一线程序猿
2013-07-24 · TA获得超过272个赞
知道小有建树答主
回答量:349
采纳率:66%
帮助的人:59.4万
展开全部
如果是在weblogic下的话,去掉以下两句:
out.clear();
out = pageContext.pushBody();
这是weblogic和tomcat的区别;
如果不是的话,不如在调用response前加以下:
response.reset();
均可尝试一下,如果还不行的话再说
I_Nelly
2013-07-12
知道答主
回答量:1
采纳率:0%
帮助的人:1474
展开全部
你解决了吗 我也碰到了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式