복붙노트

[SPRING] java.lang.NoSuchMethodError : 자바 스크립트 숨겨진 기능은 무엇입니까?

SPRING

java.lang.NoSuchMethodError : 자바 스크립트 숨겨진 기능은 무엇입니까?

봄과 JUnit을 처음 접했습니다. 스프링 서비스 클래스에 대한 간단한 JUnit 테스트 케이스를 실행하려하지만 실패하고이 예외가 발생합니다. 테스트를 아직 작성하지 않았지만 구현하기 전에 실행하려고합니다. tomcat v7.0 사용. 그리고 나는 스프링 충돌 버전이 있다고 생각하지 않는다. 도와주세요.

java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isInJavaLangAnnotationPackage(Ljava/lang/annotation/Annotation;)Z
at org.springframework.test.context.MetaAnnotationUtils.findAnnotationDescriptor(MetaAnnotationUtils.java:126)
at org.springframework.test.context.MetaAnnotationUtils.findAnnotationDescriptor(MetaAnnotationUtils.java:96)
at org.springframework.test.context.ContextLoaderUtils.resolveActiveProfiles(ContextLoaderUtils.java:499)
at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:722)
at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:656)
at org.springframework.test.context.DefaultTestContext.<init>(DefaultTestContext.java:93)
at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:119)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:120)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:109)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

내 프로젝트에 스프링 용기가 있는지 확인하려면 어디에서 확인해야합니까? 그리고 내 pom.xml 파일은 다음과 같습니다.

<dependencies>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.0.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.0.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.0.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>3.1.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
    <version>1.5.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons-core</artifactId>
    <version>1.4.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-dao</artifactId>
    <version>2.0.8</version>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.10.1.1</version>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>10.10.1.1</version>
</dependency>         
<dependency>
    <groupId>commons-pool</groupId>
    <artifactId>commons-pool</artifactId>
    <version>1.6</version>
</dependency>
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

해결법

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

    1.그 방법은 4.0.3+ 인 것처럼 보이는 커밋에 나타납니다. 스프링 의존성을 최신 버전으로 업데이트하십시오.

    그 방법은 4.0.3+ 인 것처럼 보이는 커밋에 나타납니다. 스프링 의존성을 최신 버전으로 업데이트하십시오.

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

    2.문제는 다른 버전의 Spring을 믹싱한다는 것입니다. 프로젝트에서 믹싱 (2.0.8, 3.1.4 및 4.0.2)을하고 있습니다. 그것은 일어나기를 기다리는 것이 어려움입니다.

    문제는 다른 버전의 Spring을 믹싱한다는 것입니다. 프로젝트에서 믹싱 (2.0.8, 3.1.4 및 4.0.2)을하고 있습니다. 그것은 일어나기를 기다리는 것이 어려움입니다.

    이러한 종류의 일을 방지하기 위해 가져올 수있는 소위 "BOM"이 있습니다.

    BOM을 가져 오려면 dependencyManagement 섹션을 추가해야합니다.

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>4.0.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    이제 종속성에서 버전을 제거하고 spring-dao를 spring-orm으로 바꿀 수 있습니다. 추가 된 이점은 모든 spring- * 종속성이 최신 릴리스로 관리되고 버전 번호에 대한 단일 위치 만 가질 수 있다는 것입니다.

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
    </dependency>
    

    스프링 데이터에도 똑같은 트릭을 적용 할 수 있습니다.

  3. ==============================

    3.스프링 - 프레임 워크 - bom.LATEST.VERSION.pom 파일을 기반으로 오래된 항아리를 새로운 것으로 교체하십시오.

    스프링 - 프레임 워크 - bom.LATEST.VERSION.pom 파일을 기반으로 오래된 항아리를 새로운 것으로 교체하십시오.

    그런 식으로, 나는 나의 문제를 해결했다.

  4. ==============================

    4.방금 내 Maven 프로젝트에서 대상 폴더를 삭제하고 전쟁을 재건했으며이 문제는 사라졌습니다.

    방금 내 Maven 프로젝트에서 대상 폴더를 삭제하고 전쟁을 재건했으며이 문제는 사라졌습니다.

  5. from https://stackoverflow.com/questions/23789271/java-lang-nosuchmethoderror-org-springframework-core-annotation-annotationutils by cc-by-sa and MIT license