복붙노트

[SPRING] Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError : NULL 오류

SPRING

Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError : NULL 오류

Spring 3.0.5를 3.1 GA로 마이그레이션했습니다. 초기화 중 런타임 오류가 발생했습니다.

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는 무엇인가요? 3.0.5에서는 문제가 없습니다.

해결법

  1. ==============================

    1.이것은 버전 불일치가 있음을 의미합니다. 봄철 클래스가 가장 가능성이 높습니다. 그러니 모든 봄 항아리가 3.1.0인지 확인하십시오. 특히 봄 표현. (또한 스프링 고정 후 작동하지 않으면 JPA 공급자 (최대 절전 모드?)를 업그레이드하십시오.

    이것은 버전 불일치가 있음을 의미합니다. 봄철 클래스가 가장 가능성이 높습니다. 그러니 모든 봄 항아리가 3.1.0인지 확인하십시오. 특히 봄 표현. (또한 스프링 고정 후 작동하지 않으면 JPA 공급자 (최대 절전 모드?)를 업그레이드하십시오.

  2. ==============================

    2.그것은 당신을 도울 수 있습니다. Spring 3.0.3.RELEASE에서 업그레이드하면 다음과 같은 결과를 얻는다. java.lang.NoSuchFieldError : USER_DECLARED_METHODS

    그것은 당신을 도울 수 있습니다. Spring 3.0.3.RELEASE에서 업그레이드하면 다음과 같은 결과를 얻는다. 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>
    
  3. from https://stackoverflow.com/questions/8500708/spring-3-1-entitymanagerfactory-java-lang-nosuchfielderror-null-error by cc-by-sa and MIT license