由于循环依赖,Tomcat容器启动失败 [英] Tomcat container failed to start due to cyclic dependency

查看:115
本文介绍了由于循环依赖,Tomcat容器启动失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm getting below error when ever starting tomcat. The tomcat container failed to start and showing the StackOverflowError in log due to cyclic dependency. I tried setting the -Xss value as 4M but it doesn't help. Not able to figure out which is the exact jar that giving the dependency issue. I'm using tomcat 7.0.40.

有人可以帮忙解决这个问题吗?

Can someone help on this.

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)

推荐答案

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

Possibly there is two versions of same library added on the application. In my case it was bcprov-ext-jdk15on-1.69.jar and bcprov-jdk16-143.jar. Once i removed bcprov-jdk16-143.jar, the issue got solved.

这篇关于由于循环依赖,Tomcat容器启动失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆