在tomcat下部署war包启动时报错,关键错误信息如下:
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] 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]
分析定位:
根据报错信息提示,好像是调整-Xss的大小,但这个并不是问题的所在,从错误信息的红色部分可以看出,程序中出现了循环依赖的类;
解决办法:
忽略tomcat启动时扫描jar包
tomcat8.0:
打开在tomcat的conf目录里面catalina.properties的文件,
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
改为tomcat.util.scan.DefaultJarScanner.jarsToSkip=\,*
tomcat8.5:
打开在tomcat的conf目录里面catalina.properties的文件,
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
改为tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\,*