2 Replies Latest reply: Nov 20, 2012 1:08 PM by 972160 RSS

    JUNIT >> No EJBContainer provider available for requested provider

    972160
      I'm having trouble getting an embedded EJB container initalized for my first EJB JUNIT test. Can someone let me know what is missing?

      The code I have is:

           Map properties = new HashMap();
           properties.put(EJBContainer.PROVIDER, "weblogic.ejb.embeddable.EJBContainerProvider");
           EJBContainer ejbC = EJBContainer.createEJBContainer(properties);


      the error I receive is:

      javax.ejb.EJBException: No EJBContainer provider available for requested provider: weblogic.ejb.embeddable.EJBContainerProvider: no provider names had been found.
           at javax.ejb.embeddable.EJBContainer.reportError(EJBContainer.java:186)
           at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:121)
           at com.ejb.session.HelloBeanTest.testGreet(HelloBeanTest.java:26)
           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:601)
           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.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)
        • 1. Re: JUNIT >> No EJBContainer provider available for requested provider
          dvohra21
          https://cn.forums.oracle.com/forums/thread.jspa?threadID=2415646&tstart=0
          • 2. Re: JUNIT >> No EJBContainer provider available for requested provider
            972160
            Many thanks for your reply...

            I used the posting you referenced to determine that I should code the provider as I did but it didn't seem to work for me. Perhaps I don't understand what is being suggested. Is the thread indicating that the following code should get me an embedded EJB container provider?

            import java.util.HashMap;
            import java.util.Map;
            import javax.ejb.embeddable.EJBContainer;
            import org.junit.Test;

            public class HelloBeanTest {

            @Test
            public void testGreet() throws NamingException {

            Map properties = new HashMap();
            properties.put(EJBContainer.PROVIDER, "weblogic.ejb.embeddable.EJBContainerProvider");
            EJBContainer ejbC = EJBContainer.createEJBContainer(properties);
            }

            Your help is greatly appreciated.