I coded embeded FOP in JSP on resin 1.2.7, long time ago, it works well.
 
But same code do not work on tomcat 3.2.2, 3.2.1, 3.1.1, 4.0b5
 
 
 
Result of FOP is "ByteArrayOutputStream content".
 
 
My code:
 
.... fop embeding ...
response.setContentType("application/octet-stream"); // always download
response.setHeader("Content-Disposition", "attachment; filename=\"samples.rtf\""); // set a file name
response.setContentLength(content.size()); // Specity ContentLength, If not present, MSIE request 3 times to determine ContentLength
response.getOutputStream().write(content.toByteArray());
 
// End of JSP
 
 
 
A java.lang.IllegalStateException(OutputStream is already being used for this request) thrown before end of jsp.
 
Response file downloaded, exception string follow normal pdf. looks below.
 
 
%PDF-1.3
... normal pdf ...
%%EOF
<h1>Error: 500</h1>
<h2>Location: /eduplan.jsp</h2><b>Internal Servlet Error:</b><br>
<pre>
java.lang.IllegalStateException: OutputStream is already being used for this request
 at org.apache.tomcat.core.ResponseImpl.getWriter(ResponseImpl.java:210)
 at org.apache.tomcat.core.HttpServletResponseFacade.getWriter(HttpServletResponseFacade.java:148)
 at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:154)
 at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:146)
 at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:191)
 at _0002feduplan_0002ejspeduplan_jsp_0._jspService(_0002feduplan_0002ejspeduplan_jsp_0.java:256)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:126)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.java:174)
 at org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:261)
 at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:369)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
 at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
 at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)
 at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)
 at java.lang.Thread.run(Thread.java:484)
</pre>
 
 
What is wrong???
Why happen this?
How can I resolve this?
 
--
Se-yong, Um
Republic of Korea

Reply via email to