Why do you write that your Struts Action is the place that your code is printing the raw file yet your stack trace shows you are in a JSP? Is your JSP invoking an action? If so that's your problem: everything is probably already committed, Stream-wise that is. How are you getting to this action code you included from a JSP? Shouldn't JSP's and taglibs only use the Writer? Mixing that by calling some sort of action to get OutputStream doesn't sound like a good idea, at least not according to the Tomcat Servlet docs on interface ServletResponse method getOutputStream() and getWriter(): Either this method or getWriter() may be called to write the body, not both.
Regards, David -----Original Message----- From: Xavier Vanderstukken [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 13, 2005 1:30 PM To: Struts Users Mailing List Subject: Re: Target servlet called getWriter(), then getOutputStream() Any idea? Xavier Vanderstukken wrote: > I have a jsp page with 3links : > - One open a popup and write a file in this popup > - One to display some text informations on the same page > - One to upload a file to the server (in fact the file displayed in > the first link) > > The three link seems to work well however when I upload a new file > (the new file is successfully uploaded) but after that the two others > links are broken > > The instruction that produced the stack trace is on the struts action > that write the file : > > response.setContentType(mimetype); > OutputStream os = response.getOutputStream(); // > <---- This line generates the stack > tosend.writeTo(os); > os.flush(); > > I dont know why because I can call several time the method and it > works well, the problem only occurs after an upload of a new file > > javax.servlet.jsp.JspException: ServletException in 'page.jsp': > Unexpected internal error during <import>: Target servlet called > getWriter(), then getOutputStream() > at > org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.ja va:923) > > at > org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462) > at > org.apache.jsp.layout_jsp._jspx_meth_tiles_insert_2(org.apache.jsp.layout_js p:207) > > at > org.apache.jsp.layout_jsp._jspx_meth_html_html_0(org.apache.jsp.layout_jsp:1 28) > > at org.apache.jsp.layout_jsp._jspService(org.apache.jsp.layout_jsp:73) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 22) > > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) > > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. java:672) > > at > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDis patcher.java:463) > > at > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch er.java:398) > > at > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher .java:301) > > at > org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:10 63) > > at > org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcesso r.java:263) > > at > org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRe questProcessor.java:239) > > at > org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward( TilesRequestProcessor.java:341) > > at > org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.ja va:560) > > at > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209) > > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) > at > org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:213) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:178) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126 ) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105 ) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :107) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) > > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:744) > > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.jav a:527) > > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWo rkerThread.java:80) > > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:684) > > at java.lang.Thread.run(Unknown Source) > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]