SimpleUrlHandlerMapping NoSuchFieldError:null

时间:2012-02-17 19:14:26

标签: java spring

我在初始化webapp时遇到以下错误。有没有人见过这个?

这发生在spring尝试加载SimpleUrlHandlerMapping

的地方
Caused by: java.lang.NoSuchFieldError: NULL
    at org.springframework.expression.TypedValue.<clinit>(TypedValue.java:32)
    at org.springframework.expression.spel.support.StandardEvaluationContext.setRootObject(StandardEvaluationContext.java:85)
    at org.springframework.expression.spel.support.StandardEvaluationContext.<init>(StandardEvaluationContext.java:74)
    at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:124)
    at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1299)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:210)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:182)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

这是我的lib目录的内容:

thom@motion:~/workspace/gxt-ui/war/WEB-INF/lib$ ls -l
total 8228
-rw-rw-r-- 1 thom thom 5434137 2012-01-11 21:59 gwt-servlet.jar
-rw-rw-r-- 1 thom thom  589253 2012-02-17 13:48 org.springframework.beans-3.1.0.RELEASE.jar
-rw-rw-r-- 1 thom thom  829601 2012-02-17 13:46 org.springframework.context-3.1.0.RELEASE.jar
-rw-rw-r-- 1 thom thom  442400 2012-02-17 13:50 org.springframework.core-3.1.0.RELEASE.jar
-rw-rw-r-- 1 thom thom  540819 2012-02-17 14:01 org.springframework.web-3.1.0.RELEASE.jar
-rw-rw-r-- 1 thom thom  572266 2012-02-13 10:49 org.springframework.web.servlet-3.1.0.RELEASE.jar

2 个答案:

答案 0 :(得分:1)

原来问题是我错过了应用程序正在使用的一个Spring库,并且它抛出了一个错误的异常。就我而言,缺少的库是:org.springframework.expression-3.1.0.RELEASE.jar。

感谢您的帮助。

答案 1 :(得分:0)

这是由于构建路径上同时包含Spring 3.0.X和3.1引起的。检查mvn dependency:tree的输出,或者最终打包的artefact的WEB-INF / lib目录?

我遇到过这种情况,因为Spring Security 3.1在3.0.X中引入Spring核心库,而不是3.1。

对于Maven,您可以(并且应该)通过使用标记来确保所有相关的依赖项都处于相同的Spring版本:

<properties>
    <spring.version>3.1.0.RELEASE</spring.version>
</properties
<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- spring-security-taglibs:3.1.0.RELEASE pulls in 3.0.6 of this -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <!-- spring-security-web:3.1.0.RELEASE pulls in 3.0.6 of this -->
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
相关问题