1. 程式人生 > >java.lang.NoSuchMethodError: org.springframework.beans.factory.xml...setEnviro問題解決方法

java.lang.NoSuchMethodError: org.springframework.beans.factory.xml...setEnviro問題解決方法

今天在用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,發現版本對了。
這裡寫圖片描述

再啟動專案,搞定!