通過一次SpringBoot打成war包部署到tomcat啟動總結一般jar包沖突的解決方法


啟動時,報錯信息如下:

28-Sep-2018 16:55:41.567 嚴重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
 javax.servlet.ServletException: Failed to instantiate WebApplicationInitializer class
        at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:158)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5311)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:974)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.accessibleConstructor(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
        at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:155)
        ... 12 more

這個錯誤找了很久的原因,一般都是jar包沖突導致,總結一下一般情況下jar沖突的解決方案:

方案一:給JVM的啟動的時候添加“-XX:+TraceClassLoading”,一般可以再tomcat后者eclipse(其他IDE也可以)中直接添加即可打印(通過該方法本次解決了幾個日志包相互沖突的問題)
方案二:再Eclipse中(其他IDE自己查)按“Ctrl+Shift+T”實現根據類型打開,看是否有多個如下圖本次打開發現:

方案三:再Eclipse中(其他IDE自己查)中打開pom文件中的“Dependency Hierarchy”標簽逐個查找對應的錯誤,如下圖所示:


最終,本次發現“jcapytcha-all”jar包中引用了spring2.0然后導致項目中有兩個spring的反射工具類在外置tomcat部署啟動報錯,做個記錄,轉載注明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM