Hi, I tried to a EngineService to download/export a file (application/octet-stream). Because THE file is from FTP site, I cannot get actual link form getLink() method. So I tried to do directly download as following:
Call Page: @InjectPage("DownloadOutput") public abstract DownloadOutput getDownloadOutput(); public void CallPage(IRequestCycle cycle) { DownloadOutput results = getDownloadOutput(); results.activate(fileInputStream, file.getName(), (int)file.length()); } DownloadOutput page: public void activate(FileInputStream fis, String fileName, int fileLength) FileInputStream fis = new FileInputStream(file); in = new BufferedInputStream(fis); WebResponse response = getPage().getRequestCycle().getInfrastructure().getResponse(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int c; while ( ( c = fis.read() ) != -1 ) { baos.write( c ); } fis.close(); outputStrem = response.getOutputStream(new ContentType("application/octet-stream")); response.setDateHeader("max-age", 0); response.setHeader("Content-transfer-encoding", "binary"); response.setHeader("Content-disposition", "attachment; filename=" + fileName); response.setContentLength(fileLength); response.setHeader("Connection", "keep-alive"); response.setHeader("Expires", "600000"); response.setHeader("Cache-Control", "public, post-check=0, pre-check=0"); outputStrem.write(baos.toByteArray()); outputStrem.flush(); outputStrem.close(); in.close(); in = null; getRequestCycle().activate(this); } And I got Error: [java] 17:24:38,888 ERROR ServletWebResponse:132 - Unable to reset response buffer: Committed [java] java.lang.IllegalStateException: Committed [java] at org.mortbay.jetty.servlet.ServletHttpResponse.resetBuffer(ServletHttpRes ponse.jav a:212) [java] at org.mortbay.jetty.servlet.ServletHttpResponse.reset(ServletHttpResponse. java:221) [java] at org.apache.tapestry.web.ServletWebResponse.reset(ServletWebResponse.java :128) [java] at org.apache.tapestry.web.ServletWebResponse.getPrintWriter(ServletWebResp onse.java :90) [java] at $WebResponse_1100e16f32a.getPrintWriter($WebResponse_1100e16f32a.java) [java] at $WebResponse_1100e16f1fe.getPrintWriter($WebResponse_1100e16f1fe.java) [java] at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(Re sponseRen dererImpl.java:67) [java] at $ResponseRenderer_1100e16f21a.renderResponse($ResponseRenderer_1100e16f2 1a.java) [java] at org.apache.tapestry.error.ExceptionPresenterImpl.presentException(Except ionPresen terImpl.java:46) [java] at $ExceptionPresenter_1100e16f208.presentException($ExceptionPresenter_110 0e16f208. java) [java] at org.apache.tapestry.engine.AbstractEngine.activateExceptionPage(Abstract Engine.ja va:121) [java] at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:28 0) [java] at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeE ngineTerm inator.java:60) [java] at $WebRequestServicer_1100e16f262.service($WebRequestServicer_1100e16f262. java) [java] at org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCa chingFilt er.java:4Cool [java] at $WebRequestServicerFilter_1100e16f264.service($WebRequestServicerFilter_ 1100e16f2 64.java) [java] at $WebRequestServicer_1100e16f266.service($WebRequestServicer_1100e16f266. java) [java] at $WebRequestServicer_1100e16f25e.service($WebRequestServicer_1100e16f25e. java)... I cannot find any support documents on the web. I even don't know what if that mean. Please Help.... Thank you very much