Using eclipse/tomcat, I have a single page wicket app with a single link for downloading an excel sheet (*.xlsm, around 6MB) and it works, great. However, when I plug the same piece of code in my main web application (wicket + spring + hibernate + mysql), it throws "java.io.IOException: ZIP entry size is too large". I am not able to figure out the problem. I suspect it has something to do with springframe that I use in my main web app.
Here is the exception java.io.IOException: ZIP entry size is too large at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:117) at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:55) at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:83) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:228) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:187) at com.fhlabs.app.DownloadGeneratedExcelPage1$1$1.getData(DownloadGeneratedExcelPage1.java:39) at org.apache.wicket.request.resource.ByteArrayResource.newResourceResponse(ByteArrayResource.java:101) at org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:477) at org.apache.wicket.request.handler.resource.ResourceRequestHandler.respond(ResourceRequestHandler.java:77) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:712) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:63) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:96) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:208) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:251) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Here is the code... public class DownloadGeneratedExcelPage1 extends WebPage { private static final long serialVersionUID = 1L; public DownloadGeneratedExcelPage1() { add(new Link<Void>("download") { private static final long serialVersionUID = 1L; @Override public void onClick() { final IResource resource = new ByteArrayResource( "application/vnd.ms-excel") { private static final long serialVersionUID = 1L; @Override protected byte[] getData(Attributes attributes) { InputStream in = DownloadGeneratedExcelPage1.class .getResourceAsStream("/templates/excelTest.xlsm"); ByteArrayOutputStream os = new ByteArrayOutputStream(); try { XSSFWorkbook workBook = new XSSFWorkbook(in); workBook.write(os); } catch (IOException ex) { ex.printStackTrace(); } return os.toByteArray(); } @Override protected void setResponseHeaders(ResourceResponse data, Attributes attributes) { SimpleDateFormat df = new SimpleDateFormat( "yyyy.MM.dd_HHmm"); data.setFileName("testFile_" + df.format(new Date()) + ".xlsm"); data.disableCaching(); super.setResponseHeaders(data, attributes); } }; IRequestHandler handler = new ResourceRequestHandler(resource, null); getRequestCycle().scheduleRequestHandlerAfterCurrent(handler); } }); } } I would highly appreciate your feedback. Many thanks. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/IOException-ZIP-entry-size-is-too-large-when-downloading-excel-file-tp4651487.html Sent from the Users forum mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org