Arquillian Inject external project class
victor.vidigal.ribeiro Feb 13, 2015 6:32 AMHello, I'm trying run tests with Arquillian.
I created a new project with my tests and I'm importing a War file with the application under test. I can deploy the war with the method showed bellow:
@Deployment(name = "jabot")
public static WebArchive jabotDeployment() {
final WebArchive herbarioVirtualWar = ShrinkWrap .create(ZipImporter.class, "herbariovirtual.war") .importFrom(new File("lib/jabot-herbarioVirtual-1.0.jar")) .importFrom(new File("lib/jabot-herbarioVirtual-web-1.0.war")) .as(WebArchive.class); herbarioVirtualWar.addClass(JBossASIntegrationWarTest.class);
LOGGER.info(herbarioVirtualWar.toString(Formatters.VERBOSE));
return herbarioVirtualWar;
}
The problem is when I try inject a class from my war project:
@EJB private HerbarioVirtualHandlerBeanImpl hb;
When I insert this code I get an error:
-------------------------------------------------------------------------------
Test set: org.example.arquillian.JBossASIntegrationEarTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.015 sec <<< FAILURE!
initializationError(org.example.arquillian.JBossASIntegrationEarTest) Time elapsed: 0.014 sec <<< ERROR!
java.lang.NoClassDefFoundError: Lbr/gov/jbrj/jabot/cs/colecoes/herbarioVirtual/HerbarioVirtualHandlerBeanImpl;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2499)
at java.lang.Class.getDeclaredFields(Class.java:1811)
at org.junit.runners.model.TestClass.getSortedDeclaredFields(TestClass.java:77)
at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:70)
at org.junit.runners.model.TestClass.<init>(TestClass.java:57)
at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.jboss.arquillian.junit.Arquillian.<init>(Arquillian.java:58)
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.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
Caused by: java.lang.ClassNotFoundException: br.gov.jbrj.jabot.cs.colecoes.herbarioVirtual.HerbarioVirtualHandlerBeanImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 32 more
Could someone help me?
** There is a detail. The class HerbarioVirtualHandlerBeanImpl is into lib/jabot-herbarioVirtual-1.0.jar