'Failed to process JAR found at URL [jar:file:bcprov-jdk15-1.46.jar!/] for ServletContainerInitializers for context

I have a seven web applications developed in Spring 3.2, all annotation based. I am using Hibernate 4.2 as my ORM framework.

I create a tomcat image with all the seven wars packed inside and use the same for deployment on Amazon EC2.

For last couple of days I have been encountering the below error message almost at every deployment:

WARNING: Failed to scan JAR [file:/opt/progress/CloudServices/server/webapps/cs-    
account/WEB-INF/lib/bcprov-jdk15-1.46.jar] from WEB-INF/lib
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:71)
at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:41)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
at org.apache.catalina.startup.ContextConfig$FragmentJarScannerCallback.scan(ContextConfig.java:2566)
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:166)
at org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1864)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1211)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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)

Note This was working fine earlier, the current code base might have added on or two more classes.

Not able to understand the exact problem. Any help would be really appreciated.

Update

When I increase the memory allocated to the JVM, this works fine every time. Also, if I delete the exploded war of the project which failed to deploy and re-copy the war at the webapps directory of tomcat, it works well.



Solution 1:[1]

I experienced a similar problem right now, and the solution was also to increase the memory given to Tomcat.

For the record, the error I got was this:

INFO: Deploying web application archive /var/lib/tomcat7/webapps/mywar.war
Nov 26, 2014 2:52:09 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/var/lib/tomcat7/webapps/mywar/WEB-INF/lib/javax.servlet-3.0.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Nov 26, 2014 2:52:09 PM org.apache.tomcat.util.scan.StandardJarScanner scan
WARNING: Failed to scan [file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/pulse-java.jar] from classloader hierarchy
java.io.FileNotFoundException: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/pulse-java.jar (No such file or directory)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:215)
        at java.util.zip.ZipFile.<init>(ZipFile.java:145)
        at java.util.jar.JarFile.<init>(JarFile.java:154)
        at java.util.jar.JarFile.<init>(JarFile.java:91)
        at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
        at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
        at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
        at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
        at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
        at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:40)
        at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
        at org.apache.catalina.startup.ContextConfig$FragmentJarScannerCallback.scan(ContextConfig.java:2566)
        at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
        at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:204)
        at org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1864)
        at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1211)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Nov 26, 2014 2:52:09 PM org.apache.catalina.startup.ContextConfig processServletContainerInitializers
SEVERE: Failed to process JAR found at URL [jar:file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/pulse-java.jar!/] for ServletContainerInitializers for context with name [/mywar]
Nov 26, 2014 2:52:09 PM org.apache.catalina.startup.ContextConfig configureStart
SEVERE: Marking this application unavailable due to previous error(s)
Nov 26, 2014 2:52:09 PM org.apache.catalina.startup.TldConfig tldScanJar
WARNING: Failed to process JAR [jar:file:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/pulse-java.jar!/] for TLD files
java.io.FileNotFoundException: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/pulse-java.jar (No such file or directory)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:215)
        at java.util.zip.ZipFile.<init>(ZipFile.java:145)
        at java.util.jar.JarFile.<init>(JarFile.java:154)
        at java.util.jar.JarFile.<init>(JarFile.java:91)
        at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
        at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
        at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
        at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
        at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
        at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:40)
        at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
        at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:460)
        at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:58)
        at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:276)
        at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
        at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:204)
        at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:250)
        at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:540)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Nov 26, 2014 2:52:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error getConfigured
Nov 26, 2014 2:52:09 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/mywar] startup failed due to previous errors

The pulse-java.jar is not present on my system (never has been). Increasing the memory given to Tomact solved the problem.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Martin Potthast