2016-06-06 5 views
0

ich diese schöne Ausnahme bei dem Versuch, meine Tests mit Arquillian auszuführen:Konflikt auf IntelliJs Klassenpfad?

Internal Error occured. 
java.lang.RuntimeException: Could not create new instance of class org.jboss.arquillian.test.impl.EventTestRunnerAdaptor 
at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:160) 
at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:111) 
at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:97) 
at org.jboss.arquillian.test.spi.TestRunnerAdaptorBuilder.build(TestRunnerAdaptorBuilder.java:52) 
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:93) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:156) 
... 14 more 
Caused by: java.lang.RuntimeException: Could not create new instance of class org.jboss.arquillian.core.impl.ManagerImpl 
at org.jboss.arquillian.core.spi.SecurityActions.newInstance(SecurityActions.java:160) 
at org.jboss.arquillian.core.spi.SecurityActions.newInstance(SecurityActions.java:111) 
at org.jboss.arquillian.core.spi.SecurityActions.newInstance(SecurityActions.java:97) 
at org.jboss.arquillian.core.spi.ManagerBuilder.create(ManagerBuilder.java:77) 
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.<init>(EventTestRunnerAdaptor.java:55) 
... 19 more 
Caused by: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at org.jboss.arquillian.core.spi.SecurityActions.newInstance(SecurityActions.java:156) 
... 23 more 
Caused by: java.lang.RuntimeException: Could not create and process manager 
at org.jboss.arquillian.core.impl.ManagerImpl.<init>(ManagerImpl.java:104) 
... 28 more 
Caused by: java.lang.IllegalArgumentException: Attempted to register the same Observer: org.jboss.as.arquillian.container.ServerSetupObserver multiple times, please check classpath for conflicting jar versions 
at org.jboss.arquillian.core.impl.ManagerImpl$2.observer(ManagerImpl.java:323) 
at org.jboss.arquillian.core.impl.loadable.LoadableExtensionLoader$1.observer(LoadableExtensionLoader.java:100) 
at org.jboss.as.arquillian.container.CommonContainerExtension.register(CommonContainerExtension.java:41) 
at org.jboss.as.arquillian.container.remote.RemoteContainerExtension.register(RemoteContainerExtension.java:33) 
at org.jboss.arquillian.core.impl.loadable.LoadableExtensionLoader.load(LoadableExtensionLoader.java:78) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) 
at org.jboss.arquillian.core.impl.ManagerImpl.fireProcessing(ManagerImpl.java:316) 
at org.jboss.arquillian.core.impl.ManagerImpl.<init>(ManagerImpl.java:98) 
... 28 more 

Ich bin mir dessen bewusst other questions und dass ServerSetupObserver existiert wahrscheinlich in mehreren Versionen in meinem Classpath. Der Unterschied in meinem Fall ist, dass, wenn ich meine Tests von einem Ameisen-Ziel aus führe, sie völlig in Ordnung sind, bekomme ich nur diesen Fehler, wenn ich die Tests von IntelliJ aus führe.

Die Frage ist: Wie kann ich überprüfen, wo genau ist IntelliJ ServerSetupObserver Klasse auf dem Classpath setzen und/oder wie kann ich es von dort entfernen? (Oder was kann das Problem sein hier?)

+0

Verwenden Sie IDEA's Arquillian-Plugin? Wenn ja, versuch bitte ohne und lass es mich wissen, wenn es noch etwas zu untersuchen gibt. Ich werde glücklich sein zu helfen. –

+0

@ bartosz.majsak: Ja, ich benutze das Arquillian-Plugin. Ich kann es nicht noch einmal versuchen, weil ich mein Hauptproblem inzwischen gelöst habe, aber wenn ich mich erinnere, die Tests ohne es richtig auszuführen, so hatte ein einfaches JUnit-Ziel auch Probleme. – ytg

+0

Aaund ich hatte gerade das gleiche Problem wieder. Ich habe versucht, ohne das Arquillian-Plugin, und die Fehlermeldung, die ich bekomme, ist die gleiche. – ytg

Antwort

0

nicht wirklich eine Antwort, aber meine Abhilfe:

Ich brauchte alle Abhängigkeiten von allen Modulen zu entfernen und wieder nur die benötigten Abhängigkeiten hinzufügen. Mit einem Projekt dieser Größe wäre das noch mühsamer gewesen, aber glücklicherweise hat das Projekt auch Leute, die Eclipse benutzen und ihre Klassenpfade waren in Ordnung, also könnte ich das Eclipse Dependency Sync Plugin benutzen, um meine Abhängigkeiten von ihnen zurückzubekommen.