Hallo,
beim Testen einer JBoss Anwendung setze ich Arquillian ein. Die Tests laufen erfolgreich, wenn ich sie z.B. über den remote container (jboss-as-arquillian-container-remote) laufen lasse. Allerdings schaffe ich es aber nicht, sie z.B. über einen embedded container laufen zu lassen. Ursache ist wohl Shrinkwrap: wenn ich in der Deployment-Methode den MavenDependencyResolver verwende, wird die Exception geworfen.
Zum Test habe ich das Startbeispiel der Seite Getting Started Arquillian Guides nachgestellt und in der Testklasse "GreeterTest" zwei Deployment-Methoden eingebaut. Die eine funktioniert, die andere (mit MavenDependencyResolver) führt eben zu der Exception.
Ich hänge das Beispiel an diesen Thread an. Man kann es einfach als Maven-Projekt importieren.
Was ist die Ursache dafür bzw. wie kann ich das Problem lösen?
Hat mir irgend jemand einen Link oder einen Verweis auf ein Buch, mit dem ich bzgl. des Testens von Webapps weiterkomme - mich interessiert, wie "man" das macht. Im Web gibt es zwar einiges an Links, aber irgendwie ist das nicht so verwertbar.
Gruß,
Raphalon
beim Testen einer JBoss Anwendung setze ich Arquillian ein. Die Tests laufen erfolgreich, wenn ich sie z.B. über den remote container (jboss-as-arquillian-container-remote) laufen lasse. Allerdings schaffe ich es aber nicht, sie z.B. über einen embedded container laufen zu lassen. Ursache ist wohl Shrinkwrap: wenn ich in der Deployment-Methode den MavenDependencyResolver verwende, wird die Exception geworfen.
Zum Test habe ich das Startbeispiel der Seite Getting Started Arquillian Guides nachgestellt und in der Testklasse "GreeterTest" zwei Deployment-Methoden eingebaut. Die eine funktioniert, die andere (mit MavenDependencyResolver) führt eben zu der Exception.
Ich hänge das Beispiel an diesen Thread an. Man kann es einfach als Maven-Projekt importieren.
Was ist die Ursache dafür bzw. wie kann ich das Problem lösen?
Code:
java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.WebArchive org.arquillian.example2.GreeterTest.createDeployment()
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:160)
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generateDeployment(AnnotationDeploymentScenarioGenerator.java:94)
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generate(AnnotationDeploymentScenarioGenerator.java:57)
at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
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.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
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.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
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.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:182)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
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)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:156)
... 50 more
Caused by: java.lang.IllegalStateException: Could not load specified implementation class from sun.misc.Launcher$AppClassLoader@1f3e8d89: org.jboss.shrinkwrap.resolver.impl.maven.MavenBuilderImpl
at org.jboss.shrinkwrap.resolver.api.DependencyBuilderInstantiator.getImplClassForUserView(DependencyBuilderInstantiator.java:168)
at org.jboss.shrinkwrap.resolver.api.DependencyBuilderInstantiator.createFromUserView(DependencyBuilderInstantiator.java:79)
at org.jboss.shrinkwrap.resolver.api.DependencyResolvers.use(DependencyResolvers.java:39)
at org.arquillian.example2.GreeterTest.createDeployment(GreeterTest.java:38)
... 55 more
Caused by: java.lang.ClassNotFoundException: org.jboss.shrinkwrap.resolver.impl.maven.MavenBuilderImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.jboss.shrinkwrap.resolver.api.DependencyBuilderInstantiator.getImplClassForName(DependencyBuilderInstantiator.java:191)
at org.jboss.shrinkwrap.resolver.api.DependencyBuilderInstantiator.getImplClassForUserView(DependencyBuilderInstantiator.java:163)
... 58 more
Hat mir irgend jemand einen Link oder einen Verweis auf ein Buch, mit dem ich bzgl. des Testens von Webapps weiterkomme - mich interessiert, wie "man" das macht. Im Web gibt es zwar einiges an Links, aber irgendwie ist das nicht so verwertbar.
Gruß,
Raphalon