3 Replies Latest reply on Dec 17, 2010 3:08 AM by wolfc

    A new EJB 3.1 Standalone Embeddable prototype

    wolfc

      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.j.allen

          Excellent! Let's stuff this thing into Arquillian pronto

          • 2. Re: A new EJB 3.1 Standalone Embeddable prototype
            arulazi

            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
              wolfc

              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.