使用jetty启动应用程序时出错

时间:2011-07-26 18:40:58

标签: java embedded-jetty maven-jetty-plugin

我使用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)

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

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

Notice those "lincese" and "LICENSE" files

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

答案 1 :(得分:0)

正如monzonj所说。我在OS X下遇到了同样的问题,它也不区分大小写。解决方法是配置打包maven插件(在我的情况下为shade插件)以跳过该文件。请参阅我的博文Fixed: Embedded Jetty Fails To Unpack With FileNotFoundException: Not a directory来描述它。

相关问题