Having issues re-deploying my webapp using Tomcat Manager.  Previously used 
tomcat 5.0.28 with no issues, now using tomcat 6.0.14 and can't re-deploy.  I'm 
getting an exception:  "java.util.zip.ZipException: error reading zip file".  
Sequence of actions and my configuration are below.

 

1)      Start Tomcat  (my webapp is not already installed)

2)      "ant deploy" à webapp works fine

3)      "ant deploy" à webapp is undeployed, but not re-deployed (even though 
there is a log msg in tomcat.log saying "Deploying")

a.        In tomcat.log:   
        10:32:28,216 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: init: Associated with Deployer    
        'Catalina:type=Deployer,host=localhost'

10:32:28,217 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: init: Global resources are available

10:32:28,228 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: undeploy: Undeploying web application at '/jglass'

10:32:29,006 INFO  [http-8080-1] org.apache.catalina.startup.HostConfig: 
Undeploying context [/jglass]

10:32:41,611 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: deploy: Deploying web application at '/jglass'

10:32:41,611 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: Uploading WAR file to /usr/local/jakarta-tomcat/webapps/jglass.war

10:32:45,317 INFO  [http-8080-1] org.apache.catalina.startup.HostConfig: 
Deploying web application archive jglass.war

 

b.         In webapp.log:

        10:32:28,242 INFO  [] SessionListener: ========== sessionDestroyed: 
6F32614EDB7F15D1752D00A3DDAD9437.W01 ==========

10:32:28,243 INFO  [] SessionListener: ========== contextDestroyed: IGLASS 
==========

 

4)      "ant deploy" à tries to deploy, but receives exception

a.       In tomcat.log:

10:40:02,982 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: undeploy: Undeploying web application at '/jglass'

10:40:03,004 INFO  [http-8080-1] org.apache.catalina.startup.HostConfig: 
Undeploying context [/jglass]

10:40:04,967 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: deploy: Deploying web application at '/jglass'

10:40:04,969 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]: 
Manager: Uploading WAR file to /usr/local/jakarta-tomcat/webapps/jglass.war

10:40:07,190 INFO  [http-8080-1] org.apache.catalina.startup.HostConfig: 
Deploying web application archive jglass.war

10:40:39,488 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/jglass]: Log4J 
config file: prefix [/usr/local/jakarta-tomcat/webapps/jglass/], 
filename[WEB-INF/classes/log4j.xml], WITH watchdog 

Log4J, using DOMConfigurator.

10:40:39,739 INFO  [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/jglass]: 
Marking servlet action as unavailable

10:40:39,743 ERROR [http-8080-1] 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/jglass]: 
Servlet /jglass threw load() exception

javax.servlet.UnavailableException: java.util.zip.ZipException: error reading 
zip file

        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:402)

        at 
net.iglass.jglass.servlets.FrontController.init(FrontController.java:49)

        at javax.servlet.GenericServlet.init(GenericServlet.java:212)

        at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)

        at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)

        at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)

        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)

        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)

        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:515)

        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1220)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at 
org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)

        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)

        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)

        at 
org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1458)

        at 
org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:641)

 

b.        In webapp.log:
        10:40:39,425 INFO  [] SessionListener: ========== contextInitialized: 
IGLASS ==========

10:40:39,670 DEBUG [] SessionListener: ===== APPL attrAdded: 
(org.apache.struts.action.SERVLET_MAPPING) =====

10:40:39,677 INFO  [] ActionServlet: Loading chain catalog from 
jar:file:/usr/local/apache-tomcat-6.0.14/webapps/jglass/WEB-INF/lib/struts-core-1.3.8.jar!/org/apache/struts/chain/chain-config.xml

10:40:39,707 ERROR [] ActionServlet: Exception loading resources

java.util.zip.ZipException: error reading zip file

        at java.util.zip.ZipFile.read(Native Method)

        at java.util.zip.ZipFile.access$1200(ZipFile.java:29)

        at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:447)

        at java.util.zip.ZipFile$1.fill(ZipFile.java:230)

        at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)

        at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:105)

        at java.io.FilterInputStream.read(FilterInputStream.java:66)

        at 
com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2910)

        at 
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:704)

        at 
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)

        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)

        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)

        at 
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)

        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)

        at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)

        at org.apache.commons.digester.Digester.parse(Digester.java:1745)

        at 
org.apache.commons.chain.config.ConfigParser.parse(ConfigParser.java:198)

        at 
org.apache.struts.action.ActionServlet.initChain(ActionServlet.java:1687)

        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:350)

 

5)      Restart Tomcat à webapp works fine





I can unzip struts-core-1.3.8.jar from the command line.  I have tried 
combinations of "unpackWARs/deployOnStartup/autoDeploy" in server.xml.  I have 
tried adding "antiJARLocking" to context.xml.  I have tried combinations of 
including/not-including "path/war/config" in my Ant deploy target.  I do get 
different, somewhat functional results with "unpackWARs=false" à webapp does 
deploy and partially works, but images and JavaScript code are not loaded.

 

In 
http://tomcat.apache.org/tomcat-6.0-doc/config/host.html#Automatic%20Application%20Deployment,
 I'm assuming that "automatic deployment" (while Tomcat is already running) 
refers to "autoDeploy=true".  (Just wondering how the last 2 paragraphs of this 
section apply to my case since I do have a "context.xml" in my webapp.)

 

Could there be file permission issues?  Tomcat is owned-by/running-as user 
"tomcat".  The Ant "deploy" target is, of course, running with "manager" role. 

 

I'm now at a loss.  Any help would be appreciated (having to restart Tomcat 
every time is a real pain).  My configuration follows.

 

 

server.xml:

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" deployOnStartup="true" autoDeploy="false"

            xmlValidation="false" xmlNamespaceAware="false">

 

context.xml inside my webapp:

<Context className="org.apache.catalina.core.StandardContext"

         crossContext="false" debug="0"

         override="true" privileged="false" reloadable="false"

         swallowOutput="true" useNaming="true">

 

Ant deploy target:

<target name="deploy" depends="checkTomcat, undeploy" if="is.tomcat.started"

          description="Use Tomcat manager application to deploy the 
application">

      <taskdef name="tm_deploy" classname="org.apache.catalina.ant.DeployTask" 
/>

 

      <tm_deploy url="${tomcat.manager.url}"

                 username="${tomcat.manager}"

                 password="${tomcat.manager.password}"

                 path="/${webapp.context.name}"

                 war="file:${appWarFile}"

                 config="file:${appContextFile}"

                 update="true" />

  </target>

 

Reply via email to