1

我使用 maven 插件“wagon-maven-plugin”创建了一个包含 war 文件和 jar 文件的 jar。当我尝试做"java -jar myApp.jar"

我收到以下错误

WARN [main] log.warn(50) | Failed startup of context o.e.j.w.WebAppContext{/,null},file:/Users/hrastogi/chatplus_code_new/chatplus_server/feed-monitor/jetty-pkg/target/feedmonitorservice-1.0.0-SNAPSHOT.jar
java.io.FileNotFoundException: /jetty-pkg/target/work/webapp/LICENSE (No such file or directory)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    at org.eclipse.jetty.util.resource.JarResource.copyTo(JarResource.java:226)
    at org.eclipse.jetty.webapp.WebInfConfiguration.unpack(WebInfConfiguration.java:449)
    at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:49)
    at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:465)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:495)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
    at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93)
    at org.eclipse.jetty.server.Server.doStart(Server.java:243)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
    at bekkopen.jetty.Main.start(Main.java:99)
    at bekkopen.jetty.Main.main(Main.java:29)

许可证文件存在于文件夹中。

任何指针都会有很大帮助。

谢谢

4

2 回答 2

1

我以前见过这个问题。确保您的 JAR 文件不包含名称相同但大小写不同的文件。这在 JAR 文件中有效,但在 Windows 中展开时无效。Jetty 抱怨这种欺骗性的错误。

我使用 maven-shade-plugin 创建了一个大 JAR,其中包含许多库,其中一些包含 LICENSE 文件,另一些包含一个许可证文件夹(Windows 不允许这样做)。看图片

注意那些

现在,如果我运行这个 jar。Jetty 尝试解压缩 windows temp 文件夹中的内容,但失败并出现与您类似的错误。

于 2012-02-28T09:50:18.280 回答
0

As monzonj said. I had the same problem under OS X, which is also case insensitive. The workaround was to configure the packaging maven plugin (the shade plugin, in my case) to skip that file. See my blog post Fixed: Embedded Jetty Fails To Unpack With FileNotFoundException: Not a directory describing it.

于 2013-10-04T11:31:20.960 回答