严重:子容器在启动期间失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException
SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
我是 Eclipse、Tomcat 和 Web 服务开发的新手。我只是想学习基础知识。但是,不幸的是,我遇到了一个问题,即使按照互联网上各种链接的说明,我也无法解决。我尝试了以下方法:
PS:
- 我正在使用 Eclipse Neon 和 apache-tomcat-8.0.36
- 我创建了一个基本的 HelloWorld 示例来检查该项目是否 运行 在服务器上,并且在同一台服务器上工作得很好
- 当我将 jersey jar 文件(来自 jaxrs-ri/api 和 jaxrs-ri/lib)添加到项目 WEB-INF/lib 并尝试 运行 作为 -> 时,问题就开始了运行 在来自 Eclipse 的服务器上
- 我尝试将项目转换为 maven 项目,但同样的问题仍然存在
此外,我在 运行 在服务器上安装项目时发布错误 :
>
> Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING:
> [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting
> property 'source' to 'org.eclipse.jst.jee.server:RESTJerseyExample'
> did not find a matching property. Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> version: Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> built: Jun 9 2016 13:55:50 UTC Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> number: 8.0.36.0 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name:
> Mac OS X Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS
> Version: 10.11.5 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> Architecture: x86_64 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Java Home:
> /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Version: 1.8.0_92-b14 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Vendor: Oracle Corporation Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_BASE:
> /Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_HOME: /usr/local/apache-tomcat-8.0.36 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log INFO:
> Command line argument:
> -Dcatalina.base=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument: -Dcatalina.home=/usr/local/apache-tomcat-8.0.36 Jul 25,
> 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument:
> -Dwtp.deploy=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument:
> -Djava.endorsed.dirs=/usr/local/apache-tomcat-8.0.36/endorsed Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument: -Dfile.encoding=UTF-8 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.core.AprLifecycleListener
> lifecycleEvent INFO: The APR based Apache Tomcat Native library which
> allows optimal performance in production environments was not found on
> the java.library.path:
> /Users/easiembedded/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol init INFO:
> Initializing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol init INFO: Initializing
> ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.Catalina load INFO: Initialization
> processed in 486 ms Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService startInternal INFO: Starting
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardEngine startInternal INFO: Starting
> Servlet Engine: Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.ContainerBase startInternal SEVERE: A child
> container failed during start java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
> at java.util.concurrent.FutureTask.report(FutureTask.java:122) at
> java.util.concurrent.FutureTask.get(FutureTask.java:192) at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745) Caused by:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component
> [org.apache.catalina.webresources.StandardRoot@3aa1d912] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4958)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5088)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to initialize component
> [org.apache.catalina.webresources.JarResourceSet@25268c7e] at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
> at
> org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 9 more Caused by: java.lang.IllegalArgumentException:
> java.util.zip.ZipException: invalid LOC header (bad signature) at
> org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:139)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
> ... 12 more Caused by: java.util.zip.ZipException: invalid LOC header
> (bad signature) at java.util.zip.ZipFile.read(Native Method) at
> java.util.zip.ZipFile.access00(ZipFile.java:60) at
> java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717) at
> java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
> at
> java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
> at sun.misc.IOUtils.readFully(IOUtils.java:65) at
> java.util.jar.JarFile.getBytes(JarFile.java:425) at
> java.util.jar.JarFile.getManifestFromReference(JarFile.java:193) at
> java.util.jar.JarFile.getManifest(JarFile.java:180) at
> org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:137)
> ... 13 more
>
> Jul 25, 2016 6:27:32 PM org.apache.catalina.core.ContainerBase
> startInternal SEVERE: A child container failed during start
> java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]] at
> java.util.concurrent.FutureTask.report(FutureTask.java:122) at
> java.util.concurrent.FutureTask.get(FutureTask.java:192) at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:629) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745) Caused by:
> org.apache.catalina.LifecycleException: A child container failed
> during start at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 6 more
>
> Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.Catalina start
> SEVERE: The required Server component failed to start so Tomcat is
> unable to start. org.apache.catalina.LifecycleException: Failed to
> start component [StandardServer[8005]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:629) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardService[Catalina]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component [StandardEngine[Catalina]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 9 more Caused by: org.apache.catalina.LifecycleException: A child
> container failed during start at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 11 more
>
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol pause INFO:
> Pausing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler
> ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService stopInternal INFO: Stopping
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy INFO: Destroying
> ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to destroy
> end point associated with ProtocolHandler ["http-nio-8080"]
> java.lang.NullPointerException at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
> at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
> at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
> at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
>
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol destroy
> INFO: Destroying ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32
> PM org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to
> destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
> java.lang.NullPointerException at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
> at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
> at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
> at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
任何帮助将不胜感激。
谢谢!
问题似乎是:
无效的 LOC header(签名错误)
这通常是由于:
- zip/jar 文件大于 4GB 且 java < 7
- zip 损坏 files/jars
我在损坏的部署中看到过这样的错误
快速回答:
可能我在 web.xml 中使用了错误的 servlet class,这取决于所使用的球衣存档版本。我正在使用 Jersey 2.x 并且 web.xml 有以下 servlet url,这导致了错误:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
然后我将上面的内容替换为以下内容,从而解决了错误:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
检查 servlet 标记内的 servlet 名称和 servlet 映射内的 servlet 名称。如果它们不相同,则可能会引发错误。这就是我的原因。
我是 Eclipse、Tomcat 和 Web 服务开发的新手。我只是想学习基础知识。但是,不幸的是,我遇到了一个问题,即使按照互联网上各种链接的说明,我也无法解决。我尝试了以下方法:
PS:
- 我正在使用 Eclipse Neon 和 apache-tomcat-8.0.36
- 我创建了一个基本的 HelloWorld 示例来检查该项目是否 运行 在服务器上,并且在同一台服务器上工作得很好
- 当我将 jersey jar 文件(来自 jaxrs-ri/api 和 jaxrs-ri/lib)添加到项目 WEB-INF/lib 并尝试 运行 作为 -> 时,问题就开始了运行 在来自 Eclipse 的服务器上
- 我尝试将项目转换为 maven 项目,但同样的问题仍然存在
此外,我在 运行 在服务器上安装项目时发布错误 :
>
> Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING:
> [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting
> property 'source' to 'org.eclipse.jst.jee.server:RESTJerseyExample'
> did not find a matching property. Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> version: Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> built: Jun 9 2016 13:55:50 UTC Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Server
> number: 8.0.36.0 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name:
> Mac OS X Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: OS
> Version: 10.11.5 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> Architecture: x86_64 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Java Home:
> /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Version: 1.8.0_92-b14 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: JVM
> Vendor: Oracle Corporation Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_BASE:
> /Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO:
> CATALINA_HOME: /usr/local/apache-tomcat-8.0.36 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log INFO:
> Command line argument:
> -Dcatalina.base=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument: -Dcatalina.home=/usr/local/apache-tomcat-8.0.36 Jul 25,
> 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument:
> -Dwtp.deploy=/Users/easiembedded/Documents/workspace/Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
> Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.VersionLoggerListener log INFO: Command
> line argument:
> -Djava.endorsed.dirs=/usr/local/apache-tomcat-8.0.36/endorsed Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.VersionLoggerListener log
> INFO: Command line argument: -Dfile.encoding=UTF-8 Jul 25, 2016
> 6:27:32 PM org.apache.catalina.core.AprLifecycleListener
> lifecycleEvent INFO: The APR based Apache Tomcat Native library which
> allows optimal performance in production environments was not found on
> the java.library.path:
> /Users/easiembedded/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol init INFO:
> Initializing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol init INFO: Initializing
> ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFO:
> Using a shared selector for servlet write/read Jul 25, 2016 6:27:32 PM
> org.apache.catalina.startup.Catalina load INFO: Initialization
> processed in 486 ms Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService startInternal INFO: Starting
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardEngine startInternal INFO: Starting
> Servlet Engine: Apache Tomcat/8.0.36 Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.ContainerBase startInternal SEVERE: A child
> container failed during start java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
> at java.util.concurrent.FutureTask.report(FutureTask.java:122) at
> java.util.concurrent.FutureTask.get(FutureTask.java:192) at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745) Caused by:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RESTJerseyExample]]
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component
> [org.apache.catalina.webresources.StandardRoot@3aa1d912] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4958)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5088)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 6 more Caused by: org.apache.catalina.LifecycleException: Failed
> to initialize component
> [org.apache.catalina.webresources.JarResourceSet@25268c7e] at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
> at
> org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:699)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 9 more Caused by: java.lang.IllegalArgumentException:
> java.util.zip.ZipException: invalid LOC header (bad signature) at
> org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:139)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
> ... 12 more Caused by: java.util.zip.ZipException: invalid LOC header
> (bad signature) at java.util.zip.ZipFile.read(Native Method) at
> java.util.zip.ZipFile.access00(ZipFile.java:60) at
> java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:717) at
> java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:419)
> at
> java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
> at sun.misc.IOUtils.readFully(IOUtils.java:65) at
> java.util.jar.JarFile.getBytes(JarFile.java:425) at
> java.util.jar.JarFile.getManifestFromReference(JarFile.java:193) at
> java.util.jar.JarFile.getManifest(JarFile.java:180) at
> org.apache.catalina.webresources.JarResourceSet.initInternal(JarResourceSet.java:137)
> ... 13 more
>
> Jul 25, 2016 6:27:32 PM org.apache.catalina.core.ContainerBase
> startInternal SEVERE: A child container failed during start
> java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]] at
> java.util.concurrent.FutureTask.report(FutureTask.java:122) at
> java.util.concurrent.FutureTask.get(FutureTask.java:192) at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:629) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745) Caused by:
> org.apache.catalina.LifecycleException: A child container failed
> during start at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 6 more
>
> Jul 25, 2016 6:27:32 PM org.apache.catalina.startup.Catalina start
> SEVERE: The required Server component failed to start so Tomcat is
> unable to start. org.apache.catalina.LifecycleException: Failed to
> start component [StandardServer[8005]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:629) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) Caused
> by: org.apache.catalina.LifecycleException: Failed to start component
> [StandardService[Catalina]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed
> to start component [StandardEngine[Catalina]] at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
> at
> org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 9 more Caused by: org.apache.catalina.LifecycleException: A child
> container failed during start at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
> ... 11 more
>
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol pause INFO:
> Pausing ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler
> ["ajp-nio-8009"] Jul 25, 2016 6:27:32 PM
> org.apache.catalina.core.StandardService stopInternal INFO: Stopping
> service Catalina Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy INFO: Destroying
> ProtocolHandler ["http-nio-8080"] Jul 25, 2016 6:27:32 PM
> org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to destroy
> end point associated with ProtocolHandler ["http-nio-8080"]
> java.lang.NullPointerException at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
> at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
> at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
> at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
>
> Jul 25, 2016 6:27:32 PM org.apache.coyote.AbstractProtocol destroy
> INFO: Destroying ProtocolHandler ["ajp-nio-8009"] Jul 25, 2016 6:27:32
> PM org.apache.coyote.AbstractProtocol destroy SEVERE: Failed to
> destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
> java.lang.NullPointerException at
> org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
> at
> org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
> at
> org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
> at
> org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at
> org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
> at
> org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:633) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498) at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
任何帮助将不胜感激。
谢谢!
问题似乎是:
无效的 LOC header(签名错误)
这通常是由于:
- zip/jar 文件大于 4GB 且 java < 7
- zip 损坏 files/jars
我在损坏的部署中看到过这样的错误
快速回答:
可能我在 web.xml 中使用了错误的 servlet class,这取决于所使用的球衣存档版本。我正在使用 Jersey 2.x 并且 web.xml 有以下 servlet url,这导致了错误:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
然后我将上面的内容替换为以下内容,从而解决了错误:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
检查 servlet 标记内的 servlet 名称和 servlet 映射内的 servlet 名称。如果它们不相同,则可能会引发错误。这就是我的原因。