Na wejście moduły który implementuję dostaję paczkę ZIP/JAR. Następnie muszę ją rozpakować. Operacja ta w przypadku aplikacji desktopowej wykonywana jest bez żadnych błędów i wszystko jest ładnie. Problem pojawia się jednak w przypadku aplikacji webowej. Stworzony mam Dynamic Web Project i w katalogu Webcontents umieszczam paczkę ZIP którą chcę rozpakować. Już w momencie wywoływania konstruktora:
JarFile jarFile = new JarFile("Paczka.zip");
(Reszta kodu nie jest ważna, nawet servlet z tą jedną linijka sypie się, także problem tkwi w tym miejscu)
aplikacja wyrzuca mi błąd java.util.zip.ZipException: error in opening zip file. Plik na pewno znajduje się w odpowiednim miejscu, ponieważ mogę go spokojnie wczytać jako zwykły File:
File file = new File("Paczka.zip");
Czy miał ktoś z Was taki problem? Przydatne informacje:
Java 1.6, jre6, Tomcat 5.5, aplikacja rozmieszczana jest na serwerze eatj.com, SO Windows XP Pro.
StackTrace:
java.util.zip.ZipException: error in opening zip file
java.util.zip.ZipFile.open(Native Method)
java.util.zip.ZipFile.<init>(ZipFile.java:114)
java.util.zip.ZipFile.<init>(ZipFile.java:75)
ui.Discoverer.doGet(Discoverer.java:49)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:619)
Proszę o pomoc!