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
相关推荐
Saniffer_SH2 小时前
【高清视频】如何针对电动汽车进行通信可靠性测试、故障注入与功率分析?
服务器·驱动开发·测试工具·fpga开发·计算机外设·硬件架构·压力测试
vivo互联网技术2 小时前
从业务开发视角聊聊可观测体系建设
java·服务器·监控
瀚高PG实验室2 小时前
瀚高安全版 V4.5.10卸载后残留了db_ha的agent进程导致6666端口被占用
linux·数据库·安全·瀚高数据库
低保和光头哪个先来2 小时前
TinyEditor 篇1:实现工具栏按钮向服务器上传图片
服务器·开发语言·前端·javascript·vue.js·前端框架
隔壁寝室老吴2 小时前
docker安装部署openclaw教程
运维·docker·容器
HHFQ2 小时前
如何仅使用键盘通过图形界面安装 RHEL 等 Linux 发行版
linux·运维
常利兵2 小时前
Spring Boot3 实战:WebSocket+STOMP+集群+Token认证,实现可靠服务器单向消息推送
服务器·spring boot·websocket
枕布响丸辣2 小时前
Linux 系统安全及应用实战:账号、引导、弱口令与端口扫描全解析
linux·运维·系统安全
酸菜。2 小时前
lspci -tv使用
linux