maven - 严重: A child container failed during start java. util.concurrent.ExecutionException : org. apache.catalina.LifecycleException

标签 maven tomcat pom.xml eclipse-luna

我是 Eclipse、Tomcat 和 Web 服务开发的新手。我只是想学习基础知识。但是,不幸的是,我遇到了一个问题,即使按照互联网上各个链接的说明进行操作,我也无法解决该问题。我尝试过以下方法:

附注:

  • 我正在使用 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.access$1400(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)

任何帮助将不胜感激。

谢谢!

最佳答案

快速回答:

可能,我在 web.xml 中使用了错误的 servlet 类,这取决于所使用的 Jersey 存档版本。我使用的是 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>

关于maven - 严重: A child container failed during start java. util.concurrent.ExecutionException : org. apache.catalina.LifecycleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38568988/

相关文章:

maven - 使用 “spring-boot-starter-parent”时如何在Maven中使用较低的Elastic搜索版本

java - 通过STS部署到tomcat和手动部署有区别吗?

maven - JBoss + Maven : Error building POM

java - 下载 Android SDK 工具修订版 21.1 JDeveloper/ADF Mobile

java - 如何使用 Launch4j 和 Maven 创建 .exe 文件

java - 解析插件时出错,您必须为 Maven 存储库指定 URL

java - Spring 启动 Controller 404

javascript - 如何在 jSTL + javascript 中使用 foreach?

Tomcat/Liferay 热部署无法运行

maven - Cloudera VM 上的 Apache Giraph - org.apache.hadoop 的 POM :hadoop-core:jar:2. 6.0 缺失,无依赖信息