I'm trying to run tapestry atmosphere to write a chat application for a school project. During this I came to an error even my professors don't understand.

java.io.FileNotFoundException: JAR entry WEB-INF/lib/antlr-runtime-3.5.2.jar!/ not found

Nobody know what the "!" stands for. If anyone would know Please let all of us know so tat this error can be thought to new students in the future and present.

this is being done on the demo framework from UkLance : tapestry-atmosphere https://github.com/uklance/tapestry-atmosphere

Below is the error log from (intellij)


2016-10-27 10:26:26.980:WARN:oejw.WebAppContext:Scanner-1: Failed startup of context o.e.j.w.WebAppContext@71a39e83{/tapestry-atmosphere-demo,jar:file:///C:("locationToRoot")/tapestry-atmosphere-master/tapestry-atmosphere-demo/target/tapestry-atmosphere-demo.war!/,null}{C:\("locationToRoot")\tapestry-atmosphere-master\tapestry-atmosphere-demo\target\tapestry-atmosphere-demo.war} java.io.FileNotFoundException: JAR entry WEB-INF/lib/antlr-runtime-3.5.2.jar!/ not found in C:/("locationToRoot")\tapestry-atmosphere-master\tapestry-atmosphere-demo\target\tapestry-atmosphere-demo.war at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:142) at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89) at org.eclipse.jetty.webapp.MetaInfConfiguration.getTlds(MetaInfConfiguration.java:409) at org.eclipse.jetty.webapp.MetaInfConfiguration.scanForTlds(MetaInfConfiguration.java:326) at org.eclipse.jetty.webapp.MetaInfConfiguration.scanJars(MetaInfConfiguration.java:143) at org.eclipse.jetty.webapp.MetaInfConfiguration.preConfigure(MetaInfConfiguration.java:94) at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:483) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:519) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41) at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:188) at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:499) at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:147) at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180) at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:458) at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64) at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:610) at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:529) at org.eclipse.jetty.util.Scanner.scan(Scanner.java:392) at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:329) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) [2016-10-27 10:26:27,252] Artifact tapestry-atmosphere-demo:war: Artifact is deployed successfully [2016-10-27 10:26:27,252] Artifact tapestry-atmosphere-demo:war: Deploy took 2,079 milliseconds Disconnected from the target VM, address: '127.0.0.1:57612', transport: 'socket'

Thank you for taking your time to read/think about this question.

1

There are 1 best solutions below

2
On

xxx.jar!/yyy means you are trying to load a resource /yyy from xxx.jar. It's an absolute route to the resource.

Usually, something like MyClass.class.getResource("/yyy") is being called.

In this particular case you are loading resource "" (empty string) from your jar, and the resource obviously does not exist. Probably the resource name is not propagated properly.