java.lang.NoSuchMethodError: org.springframework.beans.factory.xml...setEnviro問題解決方法
阿新 • • 發佈:2018-12-31
今天在用IDEA和maven整合struts2和spring的時候遇到已給蛋疼的問題,google了半天也沒找到答案,最後還是自己解決了。所以記錄一下,如果今後有人遇到,提供一種可能的解決方案。
首先我的pom.xml檔案中spring的依賴是這樣的
<properties>
<spring.version>4.3.8.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId >
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version >
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId >
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
乍一看,應該麼啥毛病,core、web、context甚至連webmvc都上了。啟動的時候卻報錯:
Context initialization failed
java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlBeanDefinitionReader.setEnvironment(Lorg/springframework/core/env/Environment;)V
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:87)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:613)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514)
谷歌半個小時也沒找導解決方案。但估計應該是jar包版本有問題。於是點開Project裡面的External Liabraries,發現spring相關的jar包版本基本都沒問題,只有一個,一個jar包,spring-beans的版本竟然是3.0.5。。。坑爹。。。:
於是在pom.xml中新增:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
再重新整理下maven,發現版本對了。
再啟動專案,搞定!