因爲公司有多個jdk版本的使用,而我如今使用的是一個老的版本庫,這個庫好久沒有升級了,因爲使用了es因此須要升級一下jar包,我理所固然的升級了,而後一切都很順利,在沙箱環境下依舊沒有問題,直到上線遇到了問題java
嚴重: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[9000]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.startup.Catalina.start(Catalina.java:689) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
1,這個問題感受多是jar包衝突
然而基本上解決了大部分衝突依舊沒法解決這個問題
2,認爲多是升級JDK致使的問題,在這糾結了好久,而後經過AB Test發現仍是新代碼的問題
3,找到關鍵報錯日誌,發現真正的報錯日誌其實已經打印出來了apache
Caused by: java.lang.IllegalStateException: 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.ASN1Boolean->org.bouncycastle.asn1.DERBoolean- >org.bouncycastle.asn1.ASN1Boolean]
發現仍是依賴問題,我所使用的jar包看着其實沒有衝突,其實仍是有版本衝突,這時候經過忽略相應的低版本jar包解決了該問題。tomcat
遇到問題仍是要細心查看日誌,由於最關鍵的信息仍是經過日誌發現,由於以前沒有這臺機器的權限,讓同事給我打印了日誌,可是他截取的是部分日誌,並非最核心的日誌,經過Google發現的解決方式都是改tomcat文件,可是這種每每都是治標不治本,沒有從根本上理解該問題產生的緣由。ui