When I deploy a webapp that uses web-fragments it does not start when the host is configured with unpackWARs="false". With unpackWARs="true" the same webapp starts fine. This can be shown on a clean install of tomcat8, deploy webfragments sample from apache-geronimo. The war can be downloaded from maven central: http://search.maven.org/remotecontent?filepath=org/apache/geronimo/samples/javaee6/webfragment-javaee6-war/3.0.0/webfragment-javaee6-war-3.0.0.war The only change in conf/server.xml is unpackWARs setting from true to false: <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="true"> INFO: Deploying web application archive /crypt/apache/tomcat/trunk/output/build/webapps/webfragment-javaee6-war-3.0.0.war Oct 09, 2015 10:07:56 AM org.apache.catalina.startup.ContextConfig processServletContainerInitializers SEVERE: Failed to process JAR found at URL [/webfragment-javaee6-war-3.0.0] for ServletContainerInitializers for context with name [{1}] java.net.MalformedURLException: no !/ in spec at java.net.URL.<init>(URL.java:619) at java.net.URL.<init>(URL.java:482) at java.net.URL.<init>(URL.java:431) at java.net.JarURLConnection.parseSpecs(JarURLConnection.java:179) at java.net.JarURLConnection.<init>(JarURLConnection.java:162) at sun.net.www.protocol.jar.JarURLConnection.<init>(JarURLConnection.java:81) at sun.net.www.protocol.jar.Handler.openConnection(Handler.java:41) at java.net.URL.openConnection(URL.java:971) at java.net.URL.openStream(URL.java:1037) at org.apache.catalina.startup.WebappServiceLoader.parseConfigFile(WebappServiceLoader.java:161) at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:118) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1616) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1128) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5080) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1798) 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:744) Caused by: java.lang.NullPointerException: no !/ in spec at sun.net.www.protocol.jar.Handler.parseAbsoluteSpec(Handler.java:170) at sun.net.www.protocol.jar.Handler.parseURL(Handler.java:150) at java.net.URL.<init>(URL.java:614) ... 28 more
Hi, Thanks for the report and the test case. The fix is available in trunk and 8.0.x (for 8.0.29 onwards) Regards, Violeta
*** Bug 59274 has been marked as a duplicate of this bug. ***