users@glassfish.java.net

Re: Embedded GlassFish - No EJBContainer available with multiple JUnit tests

From: Antonio Goncalves <antonio.mailing_at_gmail.com>
Date: Tue, 28 Sep 2010 15:37:32 +0200

Hi Marina,

I've tried with 3.1-b21, 3.1-b20, 3.1-b19 (after I stopped because download
is long) but in this case no tests at all pass. I have the following
exception. Do I have to do something different from the 3.0.1 ?:

java.lang.RuntimeException: java.util.MissingResourceException: Can't find
resource for bundle java.util.PropertyResourceBundle, key
iiop.cannot_find_keyalias
at
com.sun.enterprise.iiop.security.IIOPSSLUtilImpl.getKeyManagers(IIOPSSLUtilImpl.java:115)
at
org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.init(IIOPSSLSocketFactory.java:246)
at
org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.<init>(IIOPSSLSocketFactory.java:148)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.corba.ee.impl.orb.ParserTable$4.operate(ParserTable.java:750)
at
com.sun.corba.ee.impl.orb.NormalParserAction.apply(NormalParserAction.java:62)
at com.sun.corba.ee.spi.orb.PropertyParser.parse(PropertyParser.java:85)
at com.sun.corba.ee.spi.orb.ParserImplBase.init(ParserImplBase.java:85)
at
com.sun.corba.ee.impl.orb.ORBDataParserImpl.<init>(ORBDataParserImpl.java:496)
at com.sun.corba.ee.impl.orb.ORBImpl.postInit(ORBImpl.java:542)
at com.sun.corba.ee.impl.orb.ORBImpl.set_parameters(ORBImpl.java:689)
at com.sun.corba.ee.impl.orb.ORBImpl.setParameters(ORBImpl.java:676)
at com.sun.corba.ee.spi.osgi.ORBFactory.initialize(ORBFactory.java:107)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBManager.initORB(GlassFishORBManager.java:576)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBManager.getORB(GlassFishORBManager.java:262)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBFactoryImpl.createORB(GlassFishORBFactoryImpl.java:93)
at
org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:120)
at
org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getProtocolManager(GlassFishORBHelper.java:187)
at
com.sun.ejb.containers.BaseContainer.initializeProtocolManager(BaseContainer.java:816)
at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:564)
at
com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:155)
at
com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:149)
at
com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:105)
at
org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:256)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:97)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:174)
at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:239)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:401)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:221)
at
org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:193)
at
org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:142)
at
org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:137)
at
org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:128)
at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:120)
at
org.beginningee6.book.chapter07.ex01.ItemEJB01Test.initContainer(ItemEJB01Test.java:39)
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.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.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
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:192)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
Caused by: java.util.MissingResourceException: Can't find resource for
bundle java.util.PropertyResourceBundle, key iiop.cannot_find_keyalias
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at
com.sun.enterprise.iiop.security.IIOPSSLUtilImpl.getFormatMessage(IIOPSSLUtilImpl.java:135)
at
com.sun.enterprise.iiop.security.IIOPSSLUtilImpl.getKeyManagers(IIOPSSLUtilImpl.java:96)
... 67 more
28 sept. 2010 14:51:18 com.sun.corba.ee.impl.orb.ParserTable$4 operate
ATTENTION: "IOP02410214: (DATA_CONVERSION)
org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory is not a valid
custom socket factory"
org.omg.CORBA.DATA_CONVERSION: vmcid: SUN minor code: 214 completed: No
at
com.sun.corba.ee.impl.logging.ORBUtilSystemException.badCustomSocketFactory(ORBUtilSystemException.java:4852)
at
com.sun.corba.ee.impl.logging.ORBUtilSystemException.badCustomSocketFactory(ORBUtilSystemException.java:4871)
at com.sun.corba.ee.impl.orb.ParserTable$4.operate(ParserTable.java:758)
at
com.sun.corba.ee.impl.orb.NormalParserAction.apply(NormalParserAction.java:62)
at com.sun.corba.ee.spi.orb.PropertyParser.parse(PropertyParser.java:85)
at com.sun.corba.ee.spi.orb.ParserImplBase.init(ParserImplBase.java:85)
at
com.sun.corba.ee.impl.orb.ORBDataParserImpl.<init>(ORBDataParserImpl.java:496)
at com.sun.corba.ee.impl.orb.ORBImpl.postInit(ORBImpl.java:542)
at com.sun.corba.ee.impl.orb.ORBImpl.set_parameters(ORBImpl.java:689)
at com.sun.corba.ee.impl.orb.ORBImpl.setParameters(ORBImpl.java:676)
at com.sun.corba.ee.spi.osgi.ORBFactory.initialize(ORBFactory.java:107)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBManager.initORB(GlassFishORBManager.java:576)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBManager.getORB(GlassFishORBManager.java:262)
at
org.glassfish.enterprise.iiop.impl.GlassFishORBFactoryImpl.createORB(GlassFishORBFactoryImpl.java:93)
at
org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:120)
at
org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getProtocolManager(GlassFishORBHelper.java:187)
at
com.sun.ejb.containers.BaseContainer.initializeProtocolManager(BaseContainer.java:816)
at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:564)
at
com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:155)
at
com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:149)
at
com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:105)
at
org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:256)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:97)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:174)
at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:239)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:401)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:221)
at
org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:193)
at
org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:142)
at
org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:137)
at
org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:128)
at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:120)
at
org.beginningee6.book.chapter07.ex01.ItemEJB01Test.initContainer(ItemEJB01Test.java:39)
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.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.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
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:192)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)


Any idea ?
Thanks,
Antonio

2010/9/27 Marina Vatkina <marina.vatkina_at_oracle.com>

> Hi Antonio,
>
> There is a known problem with using JPA with more than one
> EJBContainer.createEJBContainer call in the same VM. Otherwise, the console
> log should give some message on what went wrong (but try the recent builds
> because they don't have a bug of suppressing deployment errors).
>
> Regards,
> -marina
>
>
> Antonio Goncalves wrote:
>
>> Hi,
>>
>> I have several JUnit test classes to test my EJBs. Taken one by one, each
>> test passes (they use JPA, Derby and so on). But when I run all the tests
>> (either with my IDE, Maven or @RunWith(Suite.class)
>> @Suite.SuiteClasses({...})) I have a No EJBContainer provider available
>> (see stack trace below). In fact, the first test passes and all the
>> following don't. I think it could be because I'm not cleaning the embbed
>> container correctly between tests. Here is what I do on each test class :
>>
>>
>> public class ItemEJB01Test {
>>
>> private static EJBContainer ec;
>> private static Context ctx;
>>
>>
>> @BeforeClass
>> public static void initContainer() throws Exception {
>> Map<String, Object> properties = new HashMap<String, Object>();
>> properties.put(EJBContainer.MODULES, new File("target/classes"));
>> *ec = EJBContainer.createEJBContainer(properties); <---- This is
>> where is breaks*
>> ctx = ec.getContext();
>> }
>>
>> @AfterClass
>> public static void closeContainer() throws Exception {
>> if (ctx != null)
>> ctx.close();
>> if (ec != null)
>> ec.close();
>> }
>> ...
>> ...
>> }
>>
>>
>> I'm using :
>>
>> <dependency>
>> <groupId>org.glassfish.extras</groupId>
>> <artifactId>glassfish-embedded-all</artifactId>
>> <version>*3.0.1-b20*</version>
>> </dependency>
>> </dependencies>
>>
>>
>> Any idea ?
>> Thanks,
>> Antonio
>>
>>
>> javax.ejb.EJBException: No EJBContainer provider available
>> The following providers:
>> org.glassfish.ejb.embedded.EJBContainerProviderImpl
>> Returned null from createEJBContainer call.
>>
>> at javax.ejb.embeddable.EJBContainer.reportError(EJBContainer.java:186)
>> at
>> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:121)
>> at
>> org.beginningee6.book.chapter07.ex03.ShoppingCartEJB03Test.initContainer(ShoppingCartEJB03Test.java:40)
>> 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.RunBefores.evaluate(RunBefores.java:27)
>> at
>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>> at org.junit.runners.Suite.runChild(Suite.java:24)
>> 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:192)
>> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:64)
>> 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)
>>
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>


-- 
--
Antonio Goncalves (antonio.goncalves_at_gmail.com)
Software architect
Web site : www.antoniogoncalves.org
Blog: agoncal.wordpress.com
Feed: feeds2.feedburner.com/AntonioGoncalves
Paris JUG leader : www.parisjug.org
LinkedIn: www.linkedin.com/in/agoncal