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
相关推荐
D2aZXN3FhrDa7e212几秒前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
无足鸟ICT23 分钟前
【RHCA+】查看变量
linux·运维·服务器
Kina_C33 分钟前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
EasyGBS1 小时前
ONVIF设备接入国标GB28181视频平台EasyGBS:不用国标也能一键拉流!
服务器·php·音视频
suaizai_1 小时前
TypeScript 7 正式发布!Vue 暂被 “拒之门外“ !!!
linux·运维·ubuntu
小小代码狗2 小时前
SQLi-Labs 基础注入实战教程(Less-1 ~ Less-5and Less-9)
服务器·python·php
慕伏白2 小时前
【慕伏白】Linux 系统如何根据端口号关闭进程
linux·运维·服务器
letisgo52 小时前
VMware Workstation + Ubuntu 26.04 LTS 小白运维部署手册
linux·运维·ubuntu
蓝创工坊Blue Foundry2 小时前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
IT探索2 小时前
Linux 查找文件指令总结
linux·算法