Tomcat问题解决:org.bouncycastle.asn1.DEREncodableVector->org.bouncycastle.asn1.ASN1EncodableVector

Tomcat8.5启动报错,报错日志如下:

04-Nov-2019 15:08:58.878 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
	org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ESBConsole]]
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:744)
		at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:980)
		at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1851)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)
	Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/ESBConsole] 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:2116)
		at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2054)
		at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2000)
		at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1970)
		at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1923)
		at org.apache.catalina.startup.ContextConfig.processClasses(ContextConfig.java:1230)
		at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1134)
		at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
		at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5134)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
		... 10 more
04-Nov-2019 15:08:58.879 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/apps/lightesb_new/apache/apache-tomcat-8.5.41/webapps/ESBConsole.war]
	java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ESBConsole]]
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:744)
		at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:980)
		at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1851)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
		at java.lang.Thread.run(Thread.java:748)

原因及解决方法:

  1. 检查tomcat启动参数设置,日志有提到一个Xss的配置,在tomcat/bin/Catalina.sh(Linux) |  Catalina.bat(Windows)文件中,有可能是配置的启动内存小了
  2. 因为tomcat启动会去扫描jar包,看错误信息org.bouncycastle.asn1.ASN1EncodableVector是出在这个类,这个类似出现在bcprov*.jar这个包,所以在tomcat的配置文件中配置tomcat启动的时候不扫描这个jar。tomcat/conf/catalina.properties文件,在tomcat.util.scan.DefaultJarScanner.jarsToSkip=里面加上bcprov*.jar过滤
发布了69 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Min_Monk/article/details/102897517
今日推荐