tomcat启动报错too low setting for -Xss

tomcat启动报错too low setting for -Xss,第1张

在Linux或Mac下,启动Tomcat时会报以下错误:

通过上面的错误信息,第一眼看起来是因为-Xss的值设置的比较小,但是调整-Xss的参数方法是不正确的。其中 -Xss的解释如下:

解决方案如下:

后面看到的错误信息 org.bouncycastle.asn1.ASN1EncodableVector 是出在这个类上,

这是因为tomcat启动会去扫描jar,这个类是出现在bcprov .jar这个包。所以在tomcat的conf目录里面catalina.properties的文件中

在tomcat.util.scan.StandardJarScanFilter.jarsToSkip=里面加上bcprov .jar过滤启动不会报错了

具体如下:

另外网上的另一种解决方案是升级Tomcat版本。自己也试了一下。用Tomcat9.0.6 也会出现这个问题,只不过频率比较低。

Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/cmi] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies.

解决方案如下:

后面看到的错误信息 org.bouncycastle.asn1.ASN1EncodableVector 是出在这个类上,

这是因为tomcat启动会去扫描jar,这个类是出现在bcprov .jar这个包。所以在tomcat的conf目录里面catalina.properties的文件中

在tomcat.util.scan.StandardJarScanFilter.jarsToSkip=里面加上bcprov

.jar过滤启动不会报错了

具体如下:

我为了偷懒一只都是多个tomcat同时用的,把启动文件名跟项目名对应好,想启动哪个项目就启动哪个项目,真是非常方便。

试试下面的方法:

首先,认真检查两个tomcat的server.xml。不要重复配置端口9999.

然后,因为9999不一定是tomcat占用的,所以检查9999是否被其他程序占用,如下:

进入装逼控制台(cmd):

netstat -aon | findstr 9999 可以查到占用9999端口的进程的进程号

tasklist | findstr 4216 查看进程名(假设4216是上一步中查询到的进程号)

如果找到了,谨慎的瞧瞧这个进程有没有用。如果没有用,直接枪毙了;如果有用,那个想用9999端口的tomcat就换成其他得端口吧。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/56985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存