非 root 用戶跑 tomcat 時遇到報錯:
Caused by: java.lang.IllegalStateException: 由于StackOverflower錯誤,無法完成對web應用程序[]的批注的掃描。可能的根本原因包括-Xss的設置過低和非法的循環繼承依賴項。正在處理的類層次結構是[org.bouncycastle.asn1.ASN1OutputStream->org.bouncycastle.asn1.DEROutputStream->org.bouncycastle.asn1.ASN1OutputStream]
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2404)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2342)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2294)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:2264)
at org.apache.catalina.startup.ContextConfig.scanWebXmlFragment(ContextConfig.java:2172)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:2152)
at org.apache.catalina.startup.ContextConfig.processClasses(ContextConfig.java:1408)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1303)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:986)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 38 more
解決辦法:
在 tomcat 的 conf/ catalina.properties
文件中排除對上述jar包的掃描,即:在 conf/ catalina.properties
文件中tomcat.util.scan.StandardJarScanFilter.jarsToSkip
末尾增加:
bcpkix-*.jar,bcprov-*.jar,fr-*.jar
如果感覺 tomcat 啟動慢,那是因為要掃描jar里的servlet3.0注解,可以在conf/ catalina.properties
文件中tomcat.util.scan.StandardJarScanFilter.jarsToSkip
末尾增加不需要掃描的jar來提速,如:
spring-amqp-*.jar,\
spring-aop-*.jar,\
spring-aspects-*.jar,\
spring-beans-*.jar,\