You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Me Self <wm...@gmail.com> on 2010/03/29 22:09:25 UTC

getOutputStream() has already been called for this response

Hello

When I include a servlet inside a tagfile then it works:
<jsp:include page="/controller"/>


But if a try to do the same in a tag that subclasses SimpleTagSupport
then tomcat throws the exception mentioned in the subject:

    @Override
    public void doTag() throws IOException, JspException {
        HttpServletRequest request = (HttpServletRequest) ((PageContext) this
                .getJspContext()).getRequest();
        HttpServletResponse response = (HttpServletResponse) ((PageContext) this
                .getJspContext()).getResponse();
        RequestDispatcher requestDispatcher = request
                .getRequestDispatcher("/controller");
        try {
            requestDispatcher.include(request, response);
        }
        catch (ServletException e) {
            throw new JspException("Failed to include action", e);
        }
     }

Why does tomcat not react the same on these?

Btw. Im trying to invoke a controller in the middle of a JSP rather
than before the JSP because I want to
do component-level MVC instead of page-level MVC.



Full stacktrace is here:

exception

org.apache.jasper.JasperException: java.lang.IllegalStateException:
getOutputStream() has already been called for this response
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:405)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

java.lang.IllegalStateException: getOutputStream() has already been
called for this response
	org.apache.catalina.connector.Response.getWriter(Response.java:619)
	org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
	org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
	org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
	org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:188)
	org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
	org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:99)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Its a tomcat 5.5 i believe embedded in jboss 5.1.0ga.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org