2016-03-26 53 views
1

注釈を使用してHibernateとSpringを統合するアプリケーション(Spring 4 MVC + Hibernate 4 + MySQL + Maven統合の例、注釈を使用)があります。Junit @Testメソッドを実行しているときにNoSuchMethodError

私はこのJUnitテストを持っている:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = { TestConfig.class, BasicDataSourceHibernateConfig.class }, 
         loader = AnnotationConfigContextLoader.class) 
@Transactional(transactionManager = "transactionManager") 
public class DeviceEventServiceImplTest { 


    @Inject 
    DeviceEventService deviceEventService; 



    @Test 
    public void testFindWithActiveAlarm() throws Exception { 
     List<DeviceEvent> deviceEvents = getDeviceEventService().findWithActiveAlarm(); 
     System.out.println(deviceEvents); 
    } 



    public DeviceEventService getDeviceEventService() { 
     return deviceEventService; 
    } 


    public void setDeviceEventService(DeviceEventService deviceEventService) { 
     this.deviceEventService = deviceEventService; 
    } 
} 

しかし、私はそれを実行し、このエラー:

java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotationAttributes(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/String;ZZ)Lorg/springframework/core/annotation/AnnotationAttributes; 
    at org.springframework.test.util.MetaAnnotationUtils$AnnotationDescriptor.<init>(MetaAnnotationUtils.java:290) 
    at org.springframework.test.util.MetaAnnotationUtils$UntypedAnnotationDescriptor.<init>(MetaAnnotationUtils.java:365) 
    at org.springframework.test.util.MetaAnnotationUtils$UntypedAnnotationDescriptor.<init>(MetaAnnotationUtils.java:360) 
    at org.springframework.test.util.MetaAnnotationUtils.findAnnotationDescriptorForTypes(MetaAnnotationUtils.java:191) 
    at org.springframework.test.util.MetaAnnotationUtils.findAnnotationDescriptorForTypes(MetaAnnotationUtils.java:166) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:274) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildTestContext(AbstractTestContextBootstrapper.java:110) 
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:120) 
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:105) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:154) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:145) 
    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:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    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:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
+0

異なるスプリングバージョンのジャーを混ぜてはいけません。クラスパスを確認してください。 –

答えて

0

「ActiveMQの-すべて」jarファイルがその中に春の異なるバージョンを持っているためです。
代わりにactivemq jarの縮小バージョンを使用するように変更する必要があります。

0

java.lang.NoSuchMethodErrorの主な理由の1つは、互換性のないjarファイルの複数のバージョンです。 Effetctive pomファイルをチェックして、あなたのspring/springブートバージョンと互換性があることを確認してください。上記の場合、それは春 - コア依存の矛盾です。

関連する問題