2011-12-14 21 views
35

我剛剛將Spring 3.0.5遷移到3.1 GA。我在初始化期間遇到運行時錯誤:Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError:NULL錯誤

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/spring/infrastructure-config.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL 
... 
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) 
    ... 39 more 

這是我的xml。

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="MyPersistenceUnit" /> 
    </bean> 

這是什麼java.lang.NoSuchFieldError: NULL? 3.0.5沒有問題。

回答

55

這意味着有一個版本不匹配 - 最有可能與春季班。所以確保你所有的彈簧罐都是3.1.0。特別是spring-expression。 (如果修復彈簧後不工作,也要升級您的JPA提供程序(休眠?)

+2

是的,你是對的。我使用Spring Flex來引用所有版本。在確保所有彈簧罐都是3.1.0後,錯誤消失了。順便說一句,你怎麼知道* java.lang.NoSuchFieldError:NULL *是版本不匹配問題? – 2011-12-14 09:11:24

1

它可以幫助您。 Upgrading from Spring 3.0.3.RELEASE results in: java.lang.NoSuchFieldError: USER_DECLARED_METHODS

此前我有過這樣

<dependencies> 
<!-- Spring 3 dependencies --> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>3.1.2.RELEASE</version> 
</dependency> 
... 
</dependencies> 

然後我說

<dependencies> 
<!-- Spring 3 dependencies --> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>3.1.2.RELEASE</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
... 

</dependencies> 
相關問題