Running tests against OpenEJB Embedded container
michaelschuetz Aug 24, 2010 7:16 PMHi to all,
here you can find an easy and ready to use example for running EJB3 integration tests against Apache OpenEJB 3.1 Embedded container:
http://github.com/arquillian/arquillian-examples/tree/master/ejb3-openejb
There are three issues I noticed:
1) no EJB3.1 interface view
Obviously, container supports EJB3 only.
2) cdi dependency is required
There is an open issue: https://jira.jboss.org/browse/ARQ-157
3) undeploy exception
{code}
INFO - Undeploying app: C:\Users\m.schuetz\AppData\Local\Temp\b931ec60-140c-48d8-b320-e0b7c06cb256\helloEJB.jar
ERROR - Unable to clear Sun JarFileFactory cache
java.lang.ClassCastException: java.lang.String cannot be cast to java.net.URL
at org.apache.openejb.ClassLoaderUtil.clearSunJarFileFactoryCache(ClassLoaderUtil.java:173)
at org.apache.openejb.ClassLoaderUtil.destroyClassLoader(ClassLoaderUtil.java:130)
at org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:918)
at org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:785)
at org.jboss.arquillian.container.openejb.embedded_3_1.OpenEJBContainer.undeploy(OpenEJBContainer.java:145)
at org.jboss.arquillian.impl.handler.ContainerUndeployer.callback(ContainerUndeployer.java:61)
at org.jboss.arquillian.impl.handler.ContainerUndeployer.callback(ContainerUndeployer.java:47)
at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)
at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)
at org.jboss.arquillian.impl.EventTestRunnerAdaptor.afterClass(EventTestRunnerAdaptor.java:86)
at org.jboss.arquillian.junit.Arquillian$3$2.evaluate(Arquillian.java:190)
at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
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.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021){code}
BTW, I did use Maven3Beta2.
Regards
Michael