【问题标题】:mvn jetty:run throwing java.util.zip.ZipException: invalid entry sizemvn jetty:run throwing java.util.zip.ZipException: 无效的条目大小
【发布时间】:2013-10-17 11:07:05
【问题描述】:

我试图在 jetty 中运行一个非常基本的项目(它基本上是一个没有任何功能的线框,只是一些 maven 依赖项)。 为此,我正在使用 mvn jetty 插件:

mvn jetty:run

但是在服务器开始启动后我得到了这个异常:

[INFO] Starting jetty 7.4.0.v20110414 ...
2012-08-16 13:25:22.237:INFO::jetty-7.4.0.v20110414

java.util.zip.ZipException: invalid entry size (expected 3313 but got 2163 bytes)
at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:386)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:156)
at java.util.jar.JarInputStream.read(JarInputStream.java:195)
at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:100)
at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:78)
at java.util.jar.JarInputStream.getNextEntry(JarInputStream.java:130)
at java.util.jar.JarInputStream.getNextJarEntry(JarInputStream.java:167)
at org.eclipse.jetty.webapp.JarScanner.matched(JarScanner.java:153)
at org.eclipse.jetty.util.PatternMatcher.matchPatterns(PatternMatcher.java:82)
at org.eclipse.jetty.util.PatternMatcher.match(PatternMatcher.java:64)
at org.eclipse.jetty.webapp.JarScanner.scan(JarScanner.java:75)
at org.eclipse.jetty.webapp.MetaInfConfiguration.preConfigure(MetaInfConfiguration.java:75)
at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:406)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:435)
at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:180)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:164)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:226)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:93)
at org.eclipse.jetty.server.Server.doStart(Server.java:253)
at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:67)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58)
at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:468)
at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:408)
at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:589)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

这听起来像是某个地方的损坏的罐子,但我不知道如何继续,这是我第一次使用 jetty。

有什么想法吗?

【问题讨论】:

  • 可能是该特定码头版本的问题。尝试在不同的 Web 服务器(如 tomcat)中部署战争。如果它在那里工作,请尝试不同版本的码头(甚至是早期版本)

标签: maven maven-jetty-plugin


【解决方案1】:

我怀疑这个问题是由于 JAR 文件损坏造成的。我的解决方案是清除我的本地存储库(删除 .m2/repository 文件夹的内容)并执行:

mvn clean install

在解决了所有依赖关系之后,它就像一个魅力一样运行。

您还应该确保在启动 jetty 之前,应用程序实际上正在编译到输出文件夹(在我的例子中是一个名为 war 的文件夹)。

【讨论】:

  • 你应该接受你自己的答案,因为问题现在已经解决了
  • 我会在要求的 48 小时结束后做 =)
【解决方案2】:

我发现了以下内容:How to programmatically copy jar files

这篇文章说:

它通常发生在源 jar 文件中的文本文件条目时 包含一些非 ASCII 字符,例如 ^I ^Z ^D ^C。一些常见的 文件可能是 META-INF/COPYRIGHT.html、META-INF/LICENSE.txt 等 因为这些文件是在非 ASCII 编辑器中创建的,但保存为 文本文件。在 vi 或 vim 中打开它们以查看这些违规字符。

也许这是错误的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    • 2014-10-22
    • 2013-04-08
    • 2012-07-21
    相关资源
    最近更新 更多