3 Replies Latest reply on Dec 17, 2010 3:08 AM by Carlo de Wolf

    A new EJB 3.1 Standalone Embeddable prototype

    Carlo de Wolf Master

      I've created a new prototype for the EJB 3.1 Embeddable functionality as outlined in chapter 22 of the specification. If you want to try it out, use the instructions I've provided in the article.

       

      A final implementation for the EJB 3.1 Embeddable will be available in our Enterprise Application Platform 6 offering. This prototype will go into the JBoss Application Server 6 Community Edition. Please try it out before AS 6 goes final.

        • 1. Re: A new EJB 3.1 Standalone Embeddable prototype
          Dan Allen Master

          Excellent! Let's stuff this thing into Arquillian pronto

          • 2. Re: A new EJB 3.1 Standalone Embeddable prototype
            Arul Dhesiaseelan Newbie

            I tried running the test and ran into a CNFE. Any clues how this dependency is sourced? I could not find this class in jboss-ejb3-embedded-standalone.jar.

             

            javax.ejb.EJBException: java.lang.ClassNotFoundException: org.jboss.ejb3.embedded.sub.JBossSubmersibleEJBContainer
                at org.jboss.ejb3.embedded.impl.standalone.JBossStandaloneEJBContainerProvider.createEJBContainer(JBossStandaloneEJBContainerProvider.java:126)
                at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:97)
                at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:79)
                at HelloBeanITCase.test1(HelloBeanITCase.java:15)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
                at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
                at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
                at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
                at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
                at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
                at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
                at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
                at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
                at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
                at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
                at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
                at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
                at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
                at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:94)
                at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:196)
                at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
            Caused by: java.lang.ClassNotFoundException: org.jboss.ejb3.embedded.sub.JBossSubmersibleEJBContainer
                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:307)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
                at org.jboss.ejb3.embedded.impl.standalone.JBossStandaloneEJBContainerProvider.createEJBContainer(JBossStandaloneEJBContainerProvider.java:120)
                ... 29 more

            • 3. Re: A new EJB 3.1 Standalone Embeddable prototype
              Carlo de Wolf Master

              It's in jboss-ejb3-embedded-sub.jar which should be located in $JBOSS_HOME/common/lib (starting with rev 109912).

               

              JBossStandaloneEJBContainerProvider will create a class loader that includes $JBOSS_HOME/lib, $JBOSS_HOME/common/lib, $JBOSS_HOME/server/${embedded.server.name}/lib and $JBOSS_HOME/client (+ a JCA hack). From this class loader JBossSubmersibleEJBContainer is loaded, which in turn loads JBoss Embedded AS.