我在初始化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
答案 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>