解决 Unable to complete the scan for annotations for web app

文章目录

问题

将war包部署在Tomcat安装路径的webapps下,启动Tomcat,在logs/catalina.out 日志文件中发现如下错误,web程序也没有运行起来:
Unable to complete the scan for annotations for web application [/xxxx] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies.

错误信息,写的还是挺清楚的:
不能完成注解的扫描,因为栈溢出错误。可能的原因是 -Xss的设置太小 和 非法的循环继承依赖。

解决

有三种解决方式:

  1. 增加单个线程堆栈的大小:
    如:-Xss4m
    缺点:在相同物理内存下,增加这个值就减少了生成线程的数量

  2. 在web.xml中,添加 metadata-complete="true"
    如果项目中没有使用任何基于java servlet的配置,通过这个配置告诉Tomcat,不用去扫描该web程序。

  3. 限制tomcat扫描的jar文件
    修改conf/catalina.properties 文件,找到属性:tomcat.util.scan.StandardJarScanFilter.jarsToSkip,在它的值后面加一个",*",这样就不会扫描所有的jar包了。启动更快,也不会出异常。
    注意,因为它的值很长,所用用\连接,一定要找到结尾处。

如果还是不能解决,根据日志,可以检查下非法的循环继承依赖的问题,检查下项目的依赖关系。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值