You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Sumit Vohra <su...@cc.gatech.edu> on 2000/11/17 02:39:56 UTC

Tomcat - Error Handler

Hi guys, 

  I have been trying to replace the JSDK web server backend with Tomcat,
and I have a message brokering servlet which works fine on JSDK when
applications connect to it. This servlet brokers both plain and multipart
messages. Now, as I mentioned it works fine on JSDK, on Tomcat, only
multipart messages are going through, plain messages are not. And, also
when I try to connect the monitoring application for the servlet to the
servlet, to get status information  it gives exceptions which it
did not at all on JSDK web server. The exception on server is: 
==================================================================
ERROR: can't find default error handler or error in default error page
java.lang.IllegalStateException: Write is already being used for this
request 
at 
org.apache.tomcat.core.ResponseImpl.getOutputStream(ResponseImpl.java:458)
at 
org.apache.tomcat.core.HttpServletResponseFacade.getOutputStream(HttpServl
etResponseFacade.java:144)
 :
 :
====================================================================

Could anybody please tell me why this is happening and what is the
difference in JSDK Web Server and Tomcat's message handling techniques
regarding multipart and plain. 

I appreciate it. 
Thanks in advance
-sumit 

					
			-Sumit Vohra (sumit143@cc.gatech.edu)


Re: Tomcat - Error Handler

Posted by Jeff Turner <je...@socialchange.net.au>.
Doh, was running on 3.2b6. It's fixed in 3.2b8. Sorry for wasting your
time.

--Jeff

On Wed, 22 Nov 2000, Jeff Turner wrote:

> Hi,
> 
> I get the same exception when using the JSP error handler after a
> <jsp:include>, eg:
> 
> ---- index.jsp ----
> <%@ page errorPage="error.jsp" %>
> <jsp:include page="foo.html" flush="true"/>
> <% if (true) throw new RuntimeException("An exception"); %>
> -------------------
> 
> ---- error.jsp ----
> <%@ page isErrorPage="true" %>
> Error page
> ------------------
> 
> (foo.html can be blank)
> 
> Now when I go to index.jsp, I get the following exception:
> 
> Error: 500
> 
> Location:/index.jsp
> 
> Internal Servlet Error:
> 
> java.lang.IllegalStateException: Cannot forward as OutputStream or Writer
> has already been obtained
>         at
> org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java,
> Compiled Code)
>         at
> org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java,
> Compiled Code)
>         at
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java,
> Compiled Code)
>         at
> _0002findex_0002ejspindex_jsp_9._jspService(_0002findex_0002ejspindex_jsp_9.java,
> Compiled Code)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
> Compiled Code)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled Code)
>         at
> org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java,
> Compiled Code)
>         at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
> Compiled Code)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
> Compiled Code)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java,
> Compiled Code)
>         at
> org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
> Compiled Code)
>         at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
> Code)
>         at
> org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java,
> Compiled Code)
>         at
> org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
> Compiled Code)
>         at
> org.apache.tomcat.core.ContextManager.service(ContextManager.java,
> Compiled Code)
>         at
> org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java,
> Compiled Code)
>         at
> org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
> Compiled Code)
>         at
> org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
> Compiled Code)
>         at java.lang.Thread.run(Thread.java, Compiled Code)
> 
> 
> --Jeff
> 
> 
> On Thu, 16 Nov 2000, Sumit Vohra wrote:
> 
> > Hi guys, 
> > 
> >   I have been trying to replace the JSDK web server backend with Tomcat,
> > and I have a message brokering servlet which works fine on JSDK when
> > applications connect to it. This servlet brokers both plain and multipart
> > messages. Now, as I mentioned it works fine on JSDK, on Tomcat, only
> > multipart messages are going through, plain messages are not. And, also
> > when I try to connect the monitoring application for the servlet to the
> > servlet, to get status information  it gives exceptions which it
> > did not at all on JSDK web server. The exception on server is: 
> > ==================================================================
> > ERROR: can't find default error handler or error in default error page
> > java.lang.IllegalStateException: Write is already being used for this
> > request 
> > at 
> > org.apache.tomcat.core.ResponseImpl.getOutputStream(ResponseImpl.java:458)
> > at 
> > org.apache.tomcat.core.HttpServletResponseFacade.getOutputStream(HttpServl
> > etResponseFacade.java:144)
> >  :
> >  :
> > ====================================================================
> > 
> > Could anybody please tell me why this is happening and what is the
> > difference in JSDK Web Server and Tomcat's message handling techniques
> > regarding multipart and plain. 
> > 
> > I appreciate it. 
> > Thanks in advance
> > -sumit 
> > 
> > 					
> > 			-Sumit Vohra (sumit143@cc.gatech.edu)
> > 
> 
> 


Re: Tomcat - Error Handler

Posted by Jeff Turner <je...@socialchange.net.au>.
Hi,

I get the same exception when using the JSP error handler after a
<jsp:include>, eg:

---- index.jsp ----
<%@ page errorPage="error.jsp" %>
<jsp:include page="foo.html" flush="true"/>
<% if (true) throw new RuntimeException("An exception"); %>
-------------------

---- error.jsp ----
<%@ page isErrorPage="true" %>
Error page
------------------

(foo.html can be blank)

Now when I go to index.jsp, I get the following exception:

Error: 500

Location:/index.jsp

Internal Servlet Error:

java.lang.IllegalStateException: Cannot forward as OutputStream or Writer
has already been obtained
        at
org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java,
Compiled Code)
        at
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java,
Compiled Code)
        at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java,
Compiled Code)
        at
_0002findex_0002ejspindex_jsp_9._jspService(_0002findex_0002ejspindex_jsp_9.java,
Compiled Code)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java,
Compiled Code)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java,
Compiled Code)
        at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java,
Compiled Code)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java,
Compiled Code)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
        at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java,
Compiled Code)
        at org.apache.tomcat.core.Handler.service(Handler.java, Compiled
Code)
        at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java,
Compiled Code)
        at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java,
Compiled Code)
        at
org.apache.tomcat.core.ContextManager.service(ContextManager.java,
Compiled Code)
        at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java,
Compiled Code)
        at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java,
Compiled Code)
        at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java,
Compiled Code)
        at java.lang.Thread.run(Thread.java, Compiled Code)


--Jeff


On Thu, 16 Nov 2000, Sumit Vohra wrote:

> Hi guys, 
> 
>   I have been trying to replace the JSDK web server backend with Tomcat,
> and I have a message brokering servlet which works fine on JSDK when
> applications connect to it. This servlet brokers both plain and multipart
> messages. Now, as I mentioned it works fine on JSDK, on Tomcat, only
> multipart messages are going through, plain messages are not. And, also
> when I try to connect the monitoring application for the servlet to the
> servlet, to get status information  it gives exceptions which it
> did not at all on JSDK web server. The exception on server is: 
> ==================================================================
> ERROR: can't find default error handler or error in default error page
> java.lang.IllegalStateException: Write is already being used for this
> request 
> at 
> org.apache.tomcat.core.ResponseImpl.getOutputStream(ResponseImpl.java:458)
> at 
> org.apache.tomcat.core.HttpServletResponseFacade.getOutputStream(HttpServl
> etResponseFacade.java:144)
>  :
>  :
> ====================================================================
> 
> Could anybody please tell me why this is happening and what is the
> difference in JSDK Web Server and Tomcat's message handling techniques
> regarding multipart and plain. 
> 
> I appreciate it. 
> Thanks in advance
> -sumit 
> 
> 					
> 			-Sumit Vohra (sumit143@cc.gatech.edu)
>