9 Replies Latest reply: Nov 5, 2002 5:44 AM by Emiliano RSS

    Invalid LOC Header

    Bill Pfeiffer Newbie

      When redeploying my .ear file, the EJB's get deployed just fine, but the war file (contained in the ear) is now continually generating this error listed below. If I restart JBoss with the same .ear file in place, no problems. I'm on the 3.0.2 version using Jetty. Any ideas?

      Here's the error:

      af.war; - nested throwable: (java.lang.InternalError: jzentry == 0,
      jzfile = 193154536,
      total = 101,
      name = C:\Documents and Settings\wpfeiffe\Local Settings\Temp\Jetty__8080___\we
      bapp\WEB-INF\lib\espeedejb_remote.jar,
      i = 17,
      message = invalid LOC header (bad signature))

        • 1. Re: Invalid LOC Header
          Julian Gosnell Expert

          This should be fixed in 3.0.3

          Jules

          • 2. Re: Invalid LOC Header
            Emiliano Newbie

            > This should be fixed in 3.0.3

            It's not fixed in 3.0.3 :-(
            will 3.0.4 fix this annoying problem?

            • 3. Re: Invalid LOC Header
              Emiliano Newbie

              > This should be fixed in 3.0.3

              it's not fixed by 3.0.3 :-(

              will the next version fix it?

              • 4. Re: Invalid LOC Header
                Emiliano Newbie

                > This should be fixed in 3.0.3

                it's not fixed by 3.0.3 :-(

                will the next version fix it?

                • 5. Re: Invalid LOC Header
                  Julian Gosnell Expert

                  fixed in 3.0.3

                  Jules

                  • 6. Re: Invalid LOC Header
                    Julian Gosnell Expert

                    OK - now forums are showing me the whole thread.

                    There were/are two problems associated with unjarring stuff.

                    One is caused when you COPY a file into the deploy dir and JBoss starts to read it and catches up with the end of the file file before the copy is finished.

                    You should MOVE the deployable into deploy. If you are on a remote fs, copy it to the local one and MOVE it from there.


                    The second was something to do with tmp directories not getting garbage collected properly and was assumed fixed in 3.0.3.

                    I can't remember which of the tow caused the invalid LOC header.

                    Try solution (1)

                    Try 3.0.4 in a couple of days.

                    If the problem persists, post a full stacktrace to this thread.

                    Jules

                    • 7. Re: Invalid LOC Header
                      Emiliano Newbie

                      not fixed! also in 3.0.4 :-(

                      12:51:11,802 ERROR [URLDeploymentScanner] Failed to deploy: org.jboss.deployment
                      .scanner.URLDeploymentScanner$DeployedURL@5586cb3c{ url=file:/D:/jboss-3.0.4/ser
                      ver/default/deploy/texrisk.war/, deployedLastModified=1036407926725 }
                      org.jboss.deployment.DeploymentException: Could not create deployment: file:/D:/
                      jboss-3.0.4/server/default/deploy/texrisk.war/; - nested throwable: (java.lang.I
                      nternalError: jzentry == 0,
                      jzfile = 193691472,
                      total = 12,
                      name = D:\jboss-3.0.4\server\default\deploy\texrisk.war\WEB-INF\lib\texrisk.jar
                      ,
                      i = 8,
                      message = invalid LOC header (bad signature))
                      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:827)
                      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:621)
                      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:585)
                      at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
                      sorImpl.java:25)
                      at java.lang.reflect.Method.invoke(Method.java:324)
                      at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBea
                      nDispatcher.java:284)
                      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
                      at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174)
                      at $Proxy4.deploy(Unknown Source)
                      at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen
                      tScanner.java:435)
                      at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS
                      canner.java:561)
                      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
                      doScan(AbstractDeploymentScanner.java:212)
                      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
                      loop(AbstractDeploymentScanner.java:225)
                      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.
                      run(AbstractDeploymentScanner.java:202)
                      Caused by: java.lang.InternalError: jzentry == 0,
                      jzfile = 193691472,
                      total = 12,
                      name = D:\jboss-3.0.4\server\default\deploy\texrisk.war\WEB-INF\lib\texrisk.jar
                      ,
                      i = 8,
                      message = invalid LOC header (bad signature)
                      at java.util.zip.ZipFile$2.nextElement(ZipFile.java:309)
                      at java.util.jar.JarFile$1.nextElement(JarFile.java:201)
                      at org.apache.jasper.compiler.TldLocationsCache.tldConfigJar(TldLocation
                      sCache.java:238)
                      at org.apache.jasper.compiler.TldLocationsCache.processJars(TldLocations
                      Cache.java:211)
                      at org.apache.jasper.compiler.TldLocationsCache.(TldLocationsCache
                      .java:139)
                      at org.apache.jasper.EmbededServletOptions.(EmbededServletOptions.
                      java:350)
                      at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:265)
                      at org.mortbay.jetty.servlet.ServletHolder.start(ServletHolder.java:225)

                      at org.mortbay.jetty.servlet.ServletHandler.initializeServlets(ServletHa
                      ndler.java:444)
                      at org.mortbay.jetty.servlet.WebApplicationHandler.initializeServlets(We
                      bApplicationHandler.java:163)
                      at org.mortbay.jetty.servlet.WebApplicationContext.start(WebApplicationC
                      ontext.java:492)
                      at org.mortbay.j2ee.J2EEWebApplicationContext.start(J2EEWebApplicationCo
                      ntext.java:85)
                      at org.jboss.jetty.Jetty.deploy(Jetty.java:414)
                      at org.jboss.jetty.JettyService.performDeploy(JettyService.java:243)
                      at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:30
                      0)
                      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:807)
                      ... 14 more

                      • 8. Re: Invalid LOC Header
                        Julian Gosnell Expert

                        So :

                        are you moving or copying the files into deploy...

                        is the problem replicable ?

                        does this replication depend on the deployable, jboss instance, machine, disk etc....

                        a little more information please.


                        Jules

                        • 9. Re: Invalid LOC Header
                          Emiliano Newbie

                          I've got a xxx.war directory, I update the web.xml modified date...

                          it seems it occurs every time I update a jar archive in the WEB-INF/lib subdir and then update the web.xml to make jboss redeploy the app

                          is it something wrong in the way I work?? sorry but I'm a newbie with jboss

                          I'm using winXP and JVM 1.4.1-b21