【发布时间】:2018-06-05 20:53:44
【问题描述】:
我在 Java 上工作不多,但我正在尝试升级 libabry。我正在尝试使用 maven 在本地运行 java google app engine 项目,并且收到错误/警告消息(如下所列)。
2018-05-17 14:39:55.050:INFO:oejs.Server:main: jetty-9.3.18.v20170406
2018-05-17 14:39:55.189:WARN:oejw.WebAppContext:main: Failed startup of context c.g.a.t.d.j.DevAppEngineWebAppContext@7995092a{/,file:///Users/user1/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/helloworld/,null}{/Users/asingh1/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/sap_gateway}
java.util.zip.ZipException: invalid CEN header (bad signature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:225)
at java.util.zip.ZipFile.<init>(ZipFile.java:155)
at java.util.jar.JarFile.<init>(JarFile.java:166)
at java.util.jar.JarFile.<init>(JarFile.java:103)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:84)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
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:485)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:521)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
at org.eclipse.jetty.server.Server.start(Server.java:422)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:389)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.google.appengine.tools.development.jetty9.JettyContainerService.startContainer(JettyContainerService.java:346)
at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:284)
at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:87)
at com.google.appengine.tools.development.Modules.startup(Modules.java:105)
at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:274)
at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:219)
at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:368)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:223)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:214)
2018-05-17 14:39:55.201:INFO:oejs.AbstractConnector:main: Started NetworkTrafficSelectChannelConnector@43ee72e6{HTTP/1.1,[http/1.1]}{localhost:8080}
2018-05-17 14:39:55.212:INFO:oejs.Server:main: Started @1089ms
May 17, 2018 6:39:55 PM com.google.appengine.tools.development.jetty9.JettyContainerService startHotDeployScanner
INFO:每 1 秒对网络应用程序进行一次全面扫描。
Java版本:jdk1.8.0_172 Maven版本:3.5.3 appengine.target.version:1.9.63 maven-compiler-plugin:3.7.0(源和目标:1.8) javax.servlet-api: 4.0.1
我已尝试删除 .m2 文件夹和 mvn clean install
感谢任何帮助! 谢谢。
【问题讨论】:
-
某些 JAR 文件肯定已损坏。它可能是您项目的 JAR 之一。可能是远程的。我不知道。无论如何,我从日志中看到您在 Eclipse 中尝试过这个。你能在命令行上执行“mvn clean appengine:run”,看看你是否得到完全相同的错误?
-
如果您在 Eclipse 中进行调试,您可以在
java.util.zip.ZipException的 Breakpoints 视图中添加一个异常断点,以识别有问题的 zip 文件. -
请注意,Java 8 的 App Engine 标准仅支持 Servlet 3.1 API,不支持 Servlet 4.x。
-
这里有两种可能导致问题的原因。如前所述,其中一个 JAR 文件可能已损坏,您是否尝试过 Chanseok Oh 的建议?另一个是 zip 文件的类型,尝试按照 Brian de Alwis 的建议定位 zip 文件,并让我们知道 zip 文件的类型。