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
相关推荐
拾贰_C5 小时前
【Ubuntu | port】Linux进程端口号冲突问题解决
linux·运维·ubuntu
wdfk_prog5 小时前
Wi-Fi Direct 教程 07:第一次 P2P Scan 如何真正发出——WPS/P2P IE、radio work 与 driver request
运维·服务器·ubuntu·wifi-direct
机核研创社5 小时前
服装自动化观察:接橡筋机的超声波熔切与冷刀,差别到底在哪
运维·自动化
欣欣之王来了6 小时前
AI合规专项:AI自动化决策的合规管控要点
运维·人工智能·自动化
guo_wen_qiang6 小时前
docker安装常见软件集合
运维·docker·容器
0+1116 小时前
Linux --读者写者问题、读写锁与自旋锁
linux
谷哥的小弟6 小时前
CentOS寿终正寝
linux·运维·centos
醇氧6 小时前
nohup 后台启动 uvicorn(仅测试 / 临时运行)
linux·运维·网络·python·python3.11
lisanmengmeng6 小时前
nagios的安装错误
linux
海宇AI6 小时前
零信任架构实战:基于海宇车辆估值构建自动化二手车收车测算网关
运维·人工智能·架构·自动化