报错-->due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies
1、详细信息
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/quSuperManager] 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]
2、分析
网上说,是因为tomcat启动时检测到循环继承而栈溢出的问题造成的。
说ASN1EncodableVector和DEREncodableVector的bcprov jar包下产生了循环继承,所以形成死循环,造成内存溢出。网上大部分方法是在tomcat配置文件中加入不扫描这个包的策略。
然而我通过idea全局搜索bcprov,发现是引用了两个不同版本的包引起的。
同时观察
问题就出在这里一个继承一个没有继承吧。具体问么产生的想不出来,问题应该就是这里。
可以总结出版本不同可能产生这个问题,不同jar包依赖同一jar包也可能产生问题。问题归根是jar版本冲突。
3、解决
版本出现问题,要么排除,要么改成同一版本,这里是直接就导入的,显然直接改版本来得快。
最后改为高版本的,因为一般高版本都会兼容一下低版本。自此问题解决。