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過濾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章