【问题标题】:Tomcat container failed to start due to cyclic dependency [duplicate]由于循环依赖,Tomcat 容器无法启动 [重复]
【发布时间】:2015-02-26 09:54:51
【问题描述】:

我在启动 tomcat 时遇到错误。由于循环依赖,tomcat 容器无法启动并在日志中显示 StackOverflowError。我尝试将 -Xss 值设置为 4M 但它没有帮助。无法弄清楚哪个是给出依赖问题的确切 jar。我正在使用 tomcat 7.0.40。

有人可以帮忙吗?

Dec 29, 2014 2:26:19 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[/aricloud]]
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/aricloud]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 7 more
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/aricloud] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.bouncycastle.asn1.ASN1EncodableVector->org.bouncycastle.asn1.DEREncodableVector->org.bouncycastle.asn1.ASN1EncodableVector]
    at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2179)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2126)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2001)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1967)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1952)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1326)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)

【问题讨论】:

  • 这是由bouncycastle中的非法组件扫描引起的
  • 请看This Answer
  • @Eddie - 我检查了 bouncycastle 的 maven 依赖树。有 2 个工件下载相同的 bouncycastle jar 但版本不同。猜猜这就是问题所在。在一个依赖项中排除相同的内容后,tomcat 不会给出该错误。感谢您的帮助...

标签: java tomcat catalina


【解决方案1】:

可能在应用程序上添加了相同库的两个版本。 就我而言,它是 bcprov-ext-jdk15on-1.69.jar 和 bcprov-jdk16-143.jar。 一旦我删除了 bcprov-jdk16-143.jar,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2020-06-16
    • 2015-10-22
    • 2022-07-28
    相关资源
    最近更新 更多