近期工程部署到Tomcat时,出现以下异常:

  1. 16-May-2018 09:35:25.590 严重 [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
  2. org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/test]]
  3. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
  4. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
  5. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
  6. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
  7. at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
  8. at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1853)
  9. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  10. at java.util.concurrent.FutureTask.run(FutureTask.java:262)
  11. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  12. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  13. at java.lang.Thread.run(Thread.java:744)
  14. Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/test] 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.ASN1Boolean->org.bouncycastle.asn1.DERBoolean->org.bouncycastle.asn1.ASN1Boolean]
  15. at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2108)
  16. at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2054)
  17. at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1999)
  18. at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1969)
  19. at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1923)
  20. at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1166)
  21. at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:783)
  22. at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:307)
  23. at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
  24. at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
  25. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213)
  26. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
  27. ... 10 more
  28.  
  29. 16-May-2018 09:35:25.606 严重 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application
    archive E:\nccode\tomcat\webapps\test.war
  30. java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component
    [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/test]]
  31. at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
  32. at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
  33. at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
  34. at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
  35. at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1853)
  36. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
  37. at java.util.concurrent.FutureTask.run(FutureTask.java:262)
  38. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  39. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  40. at java.lang.Thread.run(Thread.java:744)

红色部分是主要问题,经查询,其中 [org.bouncycastle.asn1.ASN1Boolean->org.bouncycastle.asn1.DERBoolean->org.bouncycastle.asn1.ASN1Boolean ] 形成了环状继承关系,导致出现StackOverflowError,主要原因是Maven依赖引入了2个包,分别具有不同的继承关系,去除其中一个不需要的依赖即可

解决方法:

(1)在工程中找到ASN1Boolean和DERBoolean,发现有2个依赖包含着2个类,并且继承关系相反;

(2)2个依赖中有一个是间接依赖,将这个依赖排除在外即可,如下:

  1. <dependency>
  2. <groupId> </groupId>
  3. <artifactId> </artifactId>
  4. <version> </version>
  5. <exclusions>
  6. <exclusion>
  7. <groupId> </groupId>
  8. <artifactId> </artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>

Tomcat启动报StackOverflowError的更多相关文章

  1. [转]tomcat启动报错too low setting for -Xss

    tomcat启动报错too low setting for -Xss 网上给的答案都是调整Xss参数,其实不是正确的做法, -Xss:每个线程的Stack大小,“-Xss 15120” 这使得tomc ...

  2. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  3. tomcat启动报错Several ports (8080, 8009) required by Tomcat v6.0

    tomcat启动报错 如下图: 问题:8080.8009端口已经被占用. 解决办法: 1.在命令提示符下,输入netstat -aon | findstr 8080 2.继续输入taskkill -F ...

  4. tomcat启动报错

    [toc]启动错误 does not exist or is not a readable directory 问题:tomcat启动报错:does not exist or is not a rea ...

  5. tomcat启动报错 ERROR o.a.catalina.session.StandardManager 182 - Exception loading sessions from persiste

    系统:centos6.5 x86_64 jdk: 1.8.0_102 tomcat:8.0.37 tomcat 启动报错: ERROR o.a.catalina.session.StandardMan ...

  6. Tomcat启动报错:[The configuration may be corrupt or incomplete]的解决方案

    1,场景说明: 偶然碰见Tomcat启动报错,此时并没有Add任何Web项目: Could not load the Tomcat server configuration at /Servers/T ...

  7. tomcat启动报错:Injection of autowired dependencies failed

    tomcat启动报错:Injectjion of autowired dependencies failed 环境: 操作系统:centos6.5 tomcat: 7.0.52 jdk:openjdk ...

  8. Tomcat启动报错:StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address

    Tomcat启动报错:StandardServer.await: create[8005] java.net.BindException: Cannot assign requested addres ...

  9. tomcat启动 报org.apache.catalina.LifecycleException异常

    java 服务器 tomcat启动 报org.apache.catalina.LifecycleException异常 异常代码如下: [2018-05-10 04:45:08,856] Artifa ...

随机推荐

  1. OpenStack Cinder 与各种后端存储技术的集成叙述与实践

    先说下下loop设备 loop设备及losetup命令介绍 1. loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备.它能使我们 ...

  2. JS-鼠标彩色拖尾小效果

    实现步骤解析: * 这原本就是一个鼠标后面跟随一串小方块的效果,     * 后来我就想,运用之前学的随机数的案例把小方块的颜色做成彩色的,     * 并且每一个小方块的色彩是随机分配而不是我自己手 ...

  3. 《转载》struts旅程《2》

    上一篇我们简单了解了struts原理,学习SSH,第一部是傻瓜式学习法,人家怎么做就跟着怎么做就ok.我们以登录为例,Struts配置步骤总结如下(如图2.1): 图2.2 1.          j ...

  4. linux下安装F-prot杀毒软件

    一. f-prot的安装 1.首先我们要创建一个带有超级权限的用户 sudo passwa root 2.su 切换用户 3.下载F-prot http://www.f-prot.com/downlo ...

  5. AVG

    AVG([ DISTINCT | ALL ] expr) [ OVER(analytic_clause) ] SELECT MANAGER_ID,           LAST_NAME,       ...

  6. Ext学习系列(1)初识Ext

    Ext 基础页设置: <!-- 最好不要设置的文件头,避免IE的问题 --><html> <!-- 每份有效的HTML应符合标准,为此head标签不能少 -->&l ...

  7. linux .zip 解压命令集

    zip: 压缩: zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>] ...

  8. nginx配置文件内容详情及基本属性配置

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  9. 【MySQL】为什么不要问我DB极限QPS/TPS

    为什么不要问我DB极限QPS/TPS 背景 相信很多开发都会有这个疑问,DB到底可以支撑多大的业务量,如何去评估?对于这个很专业的问题,DBA也没有办法直接告诉你,更多的都是靠经验提供一个看似靠谱的结 ...

  10. 170719、springboot编程之异步调用@Async

    1.在pom.xml中增加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...