2016-03-26 12 views
1

Ich habe eine Anwendung (Spring 4 MVC + Hibernate 4 + MySQL + Maven Integration Beispiel mit Anmerkungen), Spring mit Hibernate Annotation-basierte Konfiguration zu integrieren.NoSuchMethodError beim Ausführen von Junit @Test Methode

Ich habe diesen JUnit-Test:

@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; 
    } 
} 

Aber diesen Fehler, wenn ich es laufen:

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

Keine Gläser aus verschiedenen Federversionen mischen. Überprüfen Sie Ihren Klassenpfad. –

Antwort

0

Dies liegt daran, die "activemq-alles" jar eine andere Version des Frühlings im Innern hat .
Sie sollten stattdessen eine reduzierte Version von activemq jar verwenden.

0

Einer der Hauptgründe für java.lang.NoSuchMethodError sind mehrere Versionen inkompatibler JAR-Dateien. Überprüfen Sie die Effect-Pom-Datei und vergewissern Sie sich, dass Sie nur eine haben, die mit Ihrer Spring/Spring-Boot-Version kompatibel ist. Im obigen Fall wären es Konflikte der Frühjahrskernabhängigkeit.

Verwandte Themen