2016-02-19 41 views
-1

嗨,大家我正在使用Spring MVC 3.0.1和Maven構建一個簡單的項目,但我遇到了這個錯誤,我一直在處理一些問題,但仍未找到解決方案。希望任何人都能幫忙。錯誤如下:在Spring + Maven配置下運行項目的問題

Feb 19, 2016 9:37:09 AM org.springframework.web.context.ContextLoader initWebApplicationContext 
SEVERE: Context initialization failed 
java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/BeanExpressionResolver 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
    at java.lang.Class.getConstructor0(Class.java:3075) 
    at java.lang.Class.getDeclaredConstructor(Class.java:2178) 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:74) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:250) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.config.BeanExpressionResolver 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701) 
    ... 17 more 

Feb 19, 2016 9:37:09 AM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/BeanExpressionResolver 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
    at java.lang.Class.getConstructor0(Class.java:3075) 
    at java.lang.Class.getDeclaredConstructor(Class.java:2178) 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:74) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:250) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.config.BeanExpressionResolver 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701) 
    ... 17 more 

這裏還有我的pom.xml文件和web.xml。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test.controller</groupId> 
    <artifactId>test</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>TestRH</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <org.springframework.version>3.0.1.RELEASE</org.springframework.version> 
    </properties> 

    <repositories> 
    <repository> 
     <id>com.springsource.repository.bundles.release</id> 
     <name>EBR Spring Release Repository</name> 
     <url>http://repository.springsource.com/maven/bundles/release</url> 
    </repository> 
    <repository> 
     <id>com.springsource.repository.bundles.external</id> 
     <name>EBR External Release Repository</name> 
     <url>http://repository.springsource.com/maven/bundles/external</url> 
    </repository> 
</repositories> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.ws</groupId> 
      <artifactId>spring-ws</artifactId> 
     <version>1.5.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.ws</groupId> 
      <artifactId>spring-ws-core</artifactId> 
      <version>2.0.0-M1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.2</version> 
     <configuration> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
     <plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <version>0.12.3</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <schemaLanguage>WSDL</schemaLanguage> 
     <generatePackage>weather.wsdl</generatePackage> 
     <schemas> 
      <schema> 
       <url>http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL</url> 
      </schema> 
     </schemas> 
    </configuration> 
</plugin> 
    </plugins> 
    </build> 
</project> 

的web.xml是:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
<display-name>Archetype Created Web Application</display-name> 
<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
</context-param> 
<listener> 
     <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 
<servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
<servlet-mapping> 
      <servlet-name>dispatcher</servlet-name> 
      <url-pattern>*.html</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
</web-app> 

回答

1

更改此:

<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws</artifactId> 
    <version>1.5.2</version> 
</dependency> 

這樣:

<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws</artifactId> 
    <version>2.0.0-M1</version> 
</dependency> 
+0

現在,我在運行構建安裝時遇到了這個問題:未能在http://存儲庫中找到org.springframework.ws:spring-ws:jar:2.0.0-M1 .springsource.com/maven/bundles/release被緩存在本地存儲庫中 –

0

嘗試:

更換版本依賴彈簧WS

你使用:

<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws</artifactId> 
    <version>1.5.2</version> 
</dependency> 

更換到:

<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws</artifactId> 
    <version>2.0.0-M1</version> 
</dependency> 

更好的仍然是直到最新版本 2.1.4.RELEASE

+0

現在我在運行構建安裝時遇到了這個問題:無法在存儲庫中找到org.springframework.ws:spring-ws:jar:2.0.0-M1 .springsource.com/maven/bundles/release被緩存在本地存儲庫中 - –

+0

您正在收到此錯誤,因爲它是版本庫中的里程碑版本,因此它不應該是。嘗試將libs里程碑更改爲** 2.1.4.RELEASE **(_spring-ws_和_spring-ws-core_) –

+0

好吧,我已經將它更改爲您發佈的** 2.1.4.RELEASE **,但仍然給我同樣的錯誤。 –