关于getOutputStream() has already been called for this response的问题

kiddy2005 2005-12-31 12:04:42
新近开发的OA系统,使用tomcat作为servlet容器。在tomcat的web.xml配置文件中将invoker给打开
了。
本OA系统运行的硬件环境是 sun 480,操作系统是solaris 9。
tomcat中关于 内存和线程数的设置是如下:
JAVA_OPTS="-XX:MaxPermSize=256m -Xms1024m -Xmx1024m";export JAVA_OPTS

<Connector port="8080"
maxThreads="800" minSpareThreads="100" maxSpareThreads="800"
enableLookups="false" redirectPort="8443" acceptCount="800"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />



运行系统经常出现如下错误:
2005-12-30 19:18:30 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:600)
at org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:164)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
at org.apache.jsp.doc.receiveOpenDoc_jsp._jspService(receiveOpenDoc_jsp.java:131)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

紧接着就出现线程不组的错误,如下:
2005-12-30 22:23:34 ApplicationDispatcher[/zsjgj] Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at java.lang.ref.Finalizer$1.run(Finalizer.java:113)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ref.Finalizer.forkSecondaryFinalizer(Finalizer.java:121)
at java.lang.ref.Finalizer.runFinalization(Finalizer.java:126)
at java.lang.Runtime.runFinalization0(Native Method)


请求帮助!!!


...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nighthawk 2006-04-06
  • 打赏
  • 举报
回复
应该是你手动提前在JSP解析之前获取了response的信息。导致你的JSP页面无法获得response
kaukiyou 2006-04-06
  • 打赏
  • 举报
回复
详细讲解: http://blog.csdn.net/kaukiyou/archive/2006/04/05/651773.aspx

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧