org.apache.catalina.LifecycleException: Failed to start component错误解决

左手的ㄟ右手 2022-07-15 00:03 280阅读 0赞

1、错误
今天从同事手里接过来一个项目,在用tomcat构建的时候,出现如下错误:

  1. 十月 25, 2016 2:41:33 下午 org.apache.catalina.core.ContainerBase startInternal
  2. 严重: A child container failed during start
  3. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
  4. at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  5. at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  6. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
  7. at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
  8. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  9. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
  10. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
  11. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  12. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  13. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  14. at java.lang.Thread.run(Thread.java:745)
  15. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
  16. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
  17. ... 6 more
  18. Caused by: java.lang.ClassCastException: org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer
  19. at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1670)
  20. at org.apache.catalina.startup.ContextConfig.getServletContainerInitializers(ContextConfig.java:1652)
  21. at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1562)
  22. at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270)
  23. at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
  24. at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
  25. at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
  26. at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
  27. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
  28. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  29. ... 6 more
  30. 十月 25, 2016 2:41:33 下午 org.apache.catalina.core.ContainerBase startInternal
  31. 严重: A child container failed during start
  32. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
  33. at java.util.concurrent.FutureTask.report(FutureTask.java:122)
  34. at java.util.concurrent.FutureTask.get(FutureTask.java:192)
  35. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
  36. at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
  37. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  38. at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
  39. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  40. at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
  41. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  42. at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)
  43. at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238)
  44. at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592)
  45. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
  46. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
  47. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
  48. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
  49. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
  50. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
  51. at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
  52. at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
  53. at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
  54. at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
  55. at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
  56. at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
  57. at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
  58. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  59. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  60. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  61. at java.lang.reflect.Method.invoke(Method.java:498)
  62. at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
  63. at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
  64. at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
  65. at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
  66. at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
  67. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  68. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  69. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  70. at java.lang.reflect.Method.invoke(Method.java:498)
  71. at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
  72. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
  73. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
  74. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
  75. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
  76. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  77. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  78. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  79. at java.lang.Thread.run(Thread.java:745)
  80. Caused by: org.apache.catalina.LifecycleException: A child container failed during start
  81. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
  82. at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
  83. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  84. ... 6 more

2、解决办法
这个错误的重点在于

  1. java.lang.ClassCastException: org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer

看懂了这个,我检查了pom.xml配置,找到了错误,我用的是tomcat7在maven中,最后解决办法如下:

  1. //pom中原来配置
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>javax.servlet-api</artifactId>
  5. <version>3.1.0</version>
  6. </dependency>
  7. //改为
  8. <dependency>
  9. <groupId>javax.servlet</groupId>
  10. <artifactId>javax.servlet-api</artifactId>
  11. <version>3.1.0</version>
  12. <scope>provided</scope>
  13. </dependency>

之后再次build,成功。

发表评论

表情:
评论列表 (有 0 条评论,280人围观)

还没有评论,来说两句吧...

相关阅读