本文轉自:https://www.cnblogs.com/sixingyuan/p/7001321.html
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [META-INF/spring/community-context.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.support.DefaultListableBeanFactory.getDependencyComparator()Ljava/util/Comparator;
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at
查詢了相關資料,大部分都說引起的原因是JAR包錯誤或JAR包沖突,查看了配置文件,並沒有發現錯誤之處,因為用的是maven工程,這讓我想到了maven的JAR引用的傳遞性,應該是引用的JAR包中傳遞引用了相同的包,沒有排除。通過mvn dependency:tree 命令查看當前工程引用的依賴JAR樹
發引用了不同版本的:
org.springframework:spring-beans:jar:4.2.6.RELEASE:compile //當前項目spring版本引用的
org.springframework:spring-beans:jar:3.2.8.RELEASE:compile //maven依賴JAR中傳遞引用的版本(排除這個依賴,就可以啟動成功了)
總結:遇到此錯誤應該是JAR包版本沖突,查看maven依賴的JAR包結構,排除多余引用的JAR,即可解決問題!