annotation扫描引起的StackOverflowError问题

问题:

部署应用报错如下:

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
相关推荐
测试修炼手册8 小时前
[测试工具] 用 Codex 做测试实战:从需求分析到自动化用例落地
运维·自动化·需求分析
米高梅狮子8 小时前
03.网络类服务实践
linux·运维·服务器·网络·kubernetes·centos·openstack
June`8 小时前
网络编程时内核究竟做了什么???
linux·服务器·网络
原来是猿8 小时前
腾讯云服务器端口开放完全指南
服务器·网络·腾讯云
你的保护色9 小时前
【无标题】
java·服务器·网络
楼兰公子9 小时前
RK3588 + Linux7.0.3 网络工程调试错误速查手册
linux·网络·3588
Elnaij9 小时前
Linux系统与系统编程(9)——自设计shell与基础IO
linux·服务器
IpdataCloud9 小时前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
WebGIS开发9 小时前
地信职业百科②:GIS运维
运维·gis·就业·转行
淘矿人9 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops