问题:
部署应用报错如下:
bash
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [ecology] 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 com.tongweb.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2118)
at com.tongweb.catalina.startup.OpenEJBContextConfig.checkHandlesTypesSuper(OpenEJBContextConfig.java:759)
at com.tongweb.catalina.startup.ThanosOpenEJBContextConfig.checkHandlesTypes(ThanosOpenEJBContextConfig.java:53)
at com.tongweb.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2062)
at com.tongweb.catalina.startup.OpenEJBContextConfig.processAnnotationsStreamSuper(OpenEJBContextConfig.java:753)
at com.tongweb.catalina.startup.ThanosOpenEJBContextConfig.processAnnotationsStream(ThanosOpenEJBContextConfig.java:40)
at com.tongweb.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2008)
at com.tongweb.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1978)
at com.tongweb.catalina.startup.OpenEJBContextConfig.processAnnotationsUrlSuper(OpenEJBContextConfig.java:772)
at com.tongweb.catalina.startup.ThanosOpenEJBContextConfig.processAnnotationsUrl(ThanosOpenEJBContextConfig.java:77)
at com.tongweb.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1931)
at com.tongweb.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1165)
at com.tongweb.catalina.startup.OpenEJBContextConfig.webConfig(OpenEJBContextConfig.java:402)
at com.tongweb.catalina.startup.ContextConfig.configureStart(ContextConfig.java:775)
at com.tongweb.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:123)
at com.tongweb.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at com.tongweb.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at com.tongweb.catalina.core.StandardContext.startInternal(StandardContext.java:5122)
at com.tongweb.catalina.core.ThanosStandardContext.startInternal(ThanosStandardContext.java:153)
at com.tongweb.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 19 more
解决办法:
因为bcprov*.jar中的[org.bouncycastle.asn1.ASN1EncodableVector、org.bouncycastle.asn1.DEREncodableVector两个类互为父子关系,所以扫描时造成死循环。 在tongweb.properties中增加:
bash
tongweb.util.scan.StandardJarScanFilter.jarsToSkip=bcprov*.jar