This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 179355 - GFv3 Embedded Container fails to run a trivial JUnit test
Summary: GFv3 Embedded Container fails to run a trivial JUnit test
Status: RESOLVED WORKSFORME
Alias: None
Product: javaee
Classification: Unclassified
Component: EJB (show other bugs)
Version: 6.x
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: issues@javaee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-10 12:52 UTC by opinali
Modified: 2011-02-16 11:23 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Example of Ant project with EJB JUnit test (19.98 KB, application/octet-stream)
2010-07-09 16:22 UTC, keeperlink
Details
Example of Maven project with EJB JUnit test (34.73 KB, application/octet-stream)
2010-07-09 16:26 UTC, keeperlink
Details

Note You need to log in before you can comment on or make changes to this bug.
Description opinali 2010-01-10 12:52:17 UTC
Not sure if that's a NB6.8 or GFv3 bug (or even my mistake), but I can't manage to run the most trivial, helloworld-level JUnit test for EJB 3.1 Lite.

Steps:
0) Standard setup of NB 6.8 and the bundled Glassfish V3, plus separate setup of GFv3 Web Profile
1) Create a new Web project on the GFv3 Web Profile domain
2) Create a trivial Singleton Bean, without any interface
3) Create a JUnit(4) test for that EJB, with the "Test for existing class" wizard which generates all code to boot the embedded container and look up the EJB. Customize the test to call my one-liner EJB method.
4) Test project; fails like the stack trace below:

----------
10/01/2010 17:37:05 com.sun.enterprise.v3.server.AppServerStartup run
INFO: GlassFish v3 (74.2) startup time : Embedded(1310ms) startup services(390ms) total(1700ms)
10/01/2010 17:37:05 org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread run
INFO: JMXStartupService: JMXConnector system is disabled, skipping.
10/01/2010 17:37:05 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
10/01/2010 17:37:06 AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
10/01/2010 17:37:07 org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
10/01/2010 17:37:07 org.glassfish.admin.mbeanserver.JMXStartupService shutdown
INFO: JMXStartupService and JMXConnectors have been shut down.
10/01/2010 17:37:07 com.sun.enterprise.v3.server.AppServerStartup stop
INFO: Shutdown procedure finished
10/01/2010 17:37:07 AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
10/01/2010 17:37:07 org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
SEVERE: ejb.embedded.exception_instantiating
java.lang.RuntimeException: no container associated with application of type : ear
        at com.sun.enterprise.glassfish.web.WarHandler.handles(WarHandler.java:89)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.getArchiveHandler(ApplicationLifecycle.java:174)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:168)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
        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:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
The following providers:
org.glassfish.ejb.embedded.EJBContainerProviderImpl
Returned null from createEJBContainer call.
)
----------

I tried also to create a EJB Project, containing only the same EJB and unit test, and wired to the standard (full JavaEE 6) GFv3 domain. Now it fails with a different exception - probably more useful:

----------
10/01/2010 17:40:45 com.sun.enterprise.v3.server.AppServerStartup run
INFO: GlassFish v3 (74.2) startup time : Embedded(1732ms) startup services(421ms) total(2153ms)
10/01/2010 17:40:45 org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread run
INFO: JMXStartupService: JMXConnector system is disabled, skipping.
10/01/2010 17:40:45 com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
10/01/2010 17:40:45 AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
10/01/2010 17:40:47 com.sun.enterprise.deployment.archivist.Archivist readAnnotations
WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: build/classes/jm77/NumeroBean (wrong name: jm77/NumeroBean)
10/01/2010 17:40:47 org.glassfish.api.ActionReport failure
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Invalid ejb jar [AloEJB.jar]: it contains zero ejb. 
Note: 
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean. 
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. 
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
        at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:72)
        at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:124)
        at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:722)
        at com.sun.enterprise.deployment.Application.visit(Application.java:1744)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
        at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:145)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:78)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:214)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
        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:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
10/01/2010 17:40:47 org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
10/01/2010 17:40:47 org.glassfish.admin.mbeanserver.JMXStartupService shutdown
INFO: JMXStartupService and JMXConnectors have been shut down.
10/01/2010 17:40:47 com.sun.enterprise.v3.server.AppServerStartup stop
INFO: Shutdown procedure finished
10/01/2010 17:40:47 AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
10/01/2010 17:40:47 org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
SEVERE: ejb.embedded.exception_instantiating
javax.ejb.EJBException: Failed to deploy EJB modules - see log for details
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:135)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
        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:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031) stateless
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
The following providers:
org.glassfish.ejb.embedded.EJBContainerProviderImpl
Returned null from createEJBContainer call.
)
----------

Tried other attempts, like a more standard EJB (common stateless bean with local interface), to no avail.

Running NB and GF on top of JDK 6u18-b05, I doubt that's the problem because 6u18 is (supposedly) very close to shipping, but I can try another JDK or something else you think could help.
Comment 1 fgouveia 2010-05-31 19:58:53 UTC
Im also having the same problem, and im freaking out. I cannot find any useful information in the internet. Even with the code generated for the tests (Tools->Create JUnit tests) it throws that EJBException described.

Im using:
Netbeans 6.8
JUnit 4
Glassfish v3
Windows 7

Did you find any fix?

(In reply to comment #0)
> Not sure if that's a NB6.8 or GFv3 bug (or even my mistake), but I can't manage
> to run the most trivial, helloworld-level JUnit test for EJB 3.1 Lite.
> 
> Steps:
> 0) Standard setup of NB 6.8 and the bundled Glassfish V3, plus separate setup
> of GFv3 Web Profile
> 1) Create a new Web project on the GFv3 Web Profile domain
> 2) Create a trivial Singleton Bean, without any interface
> 3) Create a JUnit(4) test for that EJB, with the "Test for existing class"
> wizard which generates all code to boot the embedded container and look up the
> EJB. Customize the test to call my one-liner EJB method.
> 4) Test project; fails like the stack trace below:
> 
> ----------
> 10/01/2010 17:37:05 com.sun.enterprise.v3.server.AppServerStartup run
> INFO: GlassFish v3 (74.2) startup time : Embedded(1310ms) startup
> services(390ms) total(1700ms)
> 10/01/2010 17:37:05
> org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread
> run
> INFO: JMXStartupService: JMXConnector system is disabled, skipping.
> 10/01/2010 17:37:05
> com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
> INFO: Using
> com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the
> delegate
> 10/01/2010 17:37:06 AppServerStartup run
> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
> 10/01/2010 17:37:07 org.glassfish.ejb.embedded.EJBContainerProviderImpl
> createEJBContainer
> INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
> 10/01/2010 17:37:07 org.glassfish.admin.mbeanserver.JMXStartupService shutdown
> INFO: JMXStartupService and JMXConnectors have been shut down.
> 10/01/2010 17:37:07 com.sun.enterprise.v3.server.AppServerStartup stop
> INFO: Shutdown procedure finished
> 10/01/2010 17:37:07 AppServerStartup run
> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
> 10/01/2010 17:37:07 org.glassfish.ejb.embedded.EJBContainerProviderImpl
> createEJBContainer
> SEVERE: ejb.embedded.exception_instantiating
> java.lang.RuntimeException: no container associated with application of type :
> ear
>         at
> com.sun.enterprise.glassfish.web.WarHandler.handles(WarHandler.java:89)
>         at
> com.sun.enterprise.v3.server.ApplicationLifecycle.getArchiveHandler(ApplicationLifecycle.java:174)
>         at
> org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:168)
>         at
> org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
>         at
> org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
>         at
> org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
>         at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
>         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:220)
>         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
> The following providers:
> org.glassfish.ejb.embedded.EJBContainerProviderImpl
> Returned null from createEJBContainer call.
> )
> ----------
> 
> I tried also to create a EJB Project, containing only the same EJB and unit
> test, and wired to the standard (full JavaEE 6) GFv3 domain. Now it fails with
> a different exception - probably more useful:
> 
> ----------
> 10/01/2010 17:40:45 com.sun.enterprise.v3.server.AppServerStartup run
> INFO: GlassFish v3 (74.2) startup time : Embedded(1732ms) startup
> services(421ms) total(2153ms)
> 10/01/2010 17:40:45
> org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread
> run
> INFO: JMXStartupService: JMXConnector system is disabled, skipping.
> 10/01/2010 17:40:45
> com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
> INFO: Using
> com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the
> delegate
> 10/01/2010 17:40:45 AppServerStartup run
> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
> 10/01/2010 17:40:47 com.sun.enterprise.deployment.archivist.Archivist
> readAnnotations
> WARNING: Error in annotation processing: java.lang.NoClassDefFoundError:
> build/classes/jm77/NumeroBean (wrong name: jm77/NumeroBean)
> 10/01/2010 17:40:47 org.glassfish.api.ActionReport failure
> SEVERE: Exception while deploying the app
> java.lang.IllegalArgumentException: Invalid ejb jar [AloEJB.jar]: it contains
> zero ejb. 
> Note: 
> 1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or
> message-driven bean. 
> 2. EJB3+ entity beans (@Entity) are POJOs and please package them as library
> jar. 
> 3. If the jar file contains valid EJBs which are annotated with EJB component
> level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please
> check server.log to see whether the annotations were processed properly.
>         at
> com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:72)
>         at
> com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:124)
>         at
> com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:722)
>         at
> com.sun.enterprise.deployment.Application.visit(Application.java:1744)
>         at
> com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
>         at
> com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
>         at
> com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
>         at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:145)
>         at
> org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:78)
>         at
> com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
>         at
> com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
>         at
> com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
>         at
> org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:214)
>         at
> org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
>         at
> org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
>         at
> org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
>         at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
>         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:220)
>         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
> 10/01/2010 17:40:47 org.glassfish.ejb.embedded.EJBContainerProviderImpl
> createEJBContainer
> INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
> 10/01/2010 17:40:47 org.glassfish.admin.mbeanserver.JMXStartupService shutdown
> INFO: JMXStartupService and JMXConnectors have been shut down.
> 10/01/2010 17:40:47 com.sun.enterprise.v3.server.AppServerStartup stop
> INFO: Shutdown procedure finished
> 10/01/2010 17:40:47 AppServerStartup run
> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
> 10/01/2010 17:40:47 org.glassfish.ejb.embedded.EJBContainerProviderImpl
> createEJBContainer
> SEVERE: ejb.embedded.exception_instantiating
> javax.ejb.EJBException: Failed to deploy EJB modules - see log for details
>         at
> org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:135)
>         at
> org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
>         at
> javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
>         at jm77.NumeroBeanTest.initContainer(NumeroBeanTest.java:13)
>         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:220)
>         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
> stateless
>         at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
> The following providers:
> org.glassfish.ejb.embedded.EJBContainerProviderImpl
> Returned null from createEJBContainer call.
> )
> ----------
> 
> Tried other attempts, like a more standard EJB (common stateless bean with
> local interface), to no avail.
> 
> Running NB and GF on top of JDK 6u18-b05, I doubt that's the problem because
> 6u18 is (supposedly) very close to shipping, but I can try another JDK or
> something else you think could help.
Comment 2 Andrey Yamkovoy 2010-06-03 16:08:21 UTC
Tried your scenarios (Web project and EJB module)with NetBeans 6.9 RC2 with bundled Glassfish 3.0.1 b20, JDK 1.6.0_14. The tests were generated correctly and executed without any problem. 
Could you please try the NB 6.9 with bundled GF. 

It would be very useful if you attach the project you can reproduce this issue on.
Comment 3 keeperlink 2010-07-09 16:01:16 UTC
NetBeans 6.9 with GF 3.0.1, JDK 1.6.0_20.
I cannot make JUnit to work either with Ant nor Maven project.
For ant I used Java EE pattern example "EmbeddableGlassfishEJB31Test".
Junit test fails with similar as described above log:

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-test-single:
WARNING: multiple versions of ant detected in path for junit 
         jar:file:/C:/Program%20Files/NetBeans%206.9/java/ant/lib/ant.jar!/org/apache/tools/ant/Project.class
     and jar:file:/C:/Program%20Files/glassfish-3.0.1/glassfish/modules/ant.jar!/org/apache/tools/ant/Project.class
Testsuite: com.abien.business.hello.HelloWorldTest
9-Jul-2010 11:47:24 AM com.sun.enterprise.v3.server.AppServerStartup run
INFO: GlassFish Server Open Source Edition 3.0.1 (22) startup time : Embedded(1267ms) startup services(313ms) total(1580ms)
9-Jul-2010 11:47:24 AM org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread run
INFO: JMXStartupService: JMXConnector system is disabled, skipping.
9-Jul-2010 11:47:24 AM com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
9-Jul-2010 11:47:25 AM AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
9-Jul-2010 11:47:26 AM com.sun.enterprise.deployment.archivist.Archivist readAnnotations
WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: build/web/WEB-INF/classes/com/abien/presentation/hello/HelloController (wrong name: com/abien/presentation/hello/HelloController)
9-Jul-2010 11:47:26 AM org.glassfish.api.ActionReport failure
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Invalid ejb jar [EmbeddableGlassfishEJB31Test.jar]: it contains zero ejb. 
Note: 
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean. 
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. 
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
        at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:72)
        at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:124)
        at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:722)
        at com.sun.enterprise.deployment.Application.visit(Application.java:1744)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
        at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:152)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:79)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:214)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at com.abien.business.hello.HelloWorldTest.hello(HelloWorldTest.java:37)
        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.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
9-Jul-2010 11:47:26 AM org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
9-Jul-2010 11:47:26 AM org.glassfish.admin.mbeanserver.JMXStartupService shutdown
INFO: JMXStartupService and JMXConnectors have been shut down.
9-Jul-2010 11:47:26 AM com.sun.enterprise.v3.server.AppServerStartup stop
INFO: Shutdown procedure finished
9-Jul-2010 11:47:26 AM AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
9-Jul-2010 11:47:26 AM org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
SEVERE: ejb.embedded.exception_instantiating
javax.ejb.EJBException: Failed to deploy EJB modules - see log for details
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:135)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at com.abien.business.hello.HelloWorldTest.hello(HelloWorldTest.java:37)
        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.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 3.364 sec

------------- Standard Error -----------------
9-Jul-2010 11:47:24 AM com.sun.enterprise.v3.server.AppServerStartup run
INFO: GlassFish Server Open Source Edition 3.0.1 (22) startup time : Embedded(1267ms) startup services(313ms) total(1580ms)
9-Jul-2010 11:47:24 AM org.glassfish.admin.mbeanserver.JMXStartupService$JMXConnectorsStarterThread run
INFO: JMXStartupService: JMXConnector system is disabled, skipping.
9-Jul-2010 11:47:24 AM com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the delegate
9-Jul-2010 11:47:25 AM AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
9-Jul-2010 11:47:26 AM com.sun.enterprise.deployment.archivist.Archivist readAnnotations
WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: build/web/WEB-INF/classes/com/abien/presentation/hello/HelloController (wrong name: com/abien/presentation/hello/HelloController)
9-Jul-2010 11:47:26 AM org.glassfish.api.ActionReport failure
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Invalid ejb jar [EmbeddableGlassfishEJB31Test.jar]: it contains zero ejb. 
Note: 
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean. 
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. 
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
        at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:72)
        at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:124)
        at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:722)
        at com.sun.enterprise.deployment.Application.visit(Application.java:1744)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
        at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
        at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:152)
        at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:79)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:214)
        at org.glassfish.kernel.embedded.EmbeddedDeployerImpl.deploy(EmbeddedDeployerImpl.java:144)
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:128)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at com.abien.business.hello.HelloWorldTest.hello(HelloWorldTest.java:37)
        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.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
9-Jul-2010 11:47:26 AM org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
INFO: [EJBContainerProviderImpl] Cleaning up on failure ...
9-Jul-2010 11:47:26 AM org.glassfish.admin.mbeanserver.JMXStartupService shutdown
INFO: JMXStartupService and JMXConnectors have been shut down.
9-Jul-2010 11:47:26 AM com.sun.enterprise.v3.server.AppServerStartup stop
INFO: Shutdown procedure finished
9-Jul-2010 11:47:26 AM AppServerStartup run
INFO: [Thread[GlassFish Kernel Main Thread,5,main]] exiting
9-Jul-2010 11:47:26 AM org.glassfish.ejb.embedded.EJBContainerProviderImpl createEJBContainer
SEVERE: ejb.embedded.exception_instantiating
javax.ejb.EJBException: Failed to deploy EJB modules - see log for details
        at org.glassfish.ejb.embedded.EJBContainerImpl.deploy(EJBContainerImpl.java:135)
        at org.glassfish.ejb.embedded.EJBContainerProviderImpl.createEJBContainer(EJBContainerProviderImpl.java:120)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
        at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at com.abien.business.hello.HelloWorldTest.hello(HelloWorldTest.java:37)
        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.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
        at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
        at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
------------- ---------------- ---------------
Testcase: hello(com.abien.business.hello.HelloWorldTest):        Caused an ERROR
No EJBContainer provider available
The following providers:
org.glassfish.ejb.embedded.EJBContainerProviderImpl
Returned null from createEJBContainer call.

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 javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:78)
        at com.abien.business.hello.HelloWorldTest.hello(HelloWorldTest.java:37)


Test com.abien.business.hello.HelloWorldTest FAILED
C:\Projects\Java EE patterns\EmbeddableGlassfishEJB31Test\nbproject\build-impl.xml:902: Some tests failed; see details above.
BUILD FAILED (total time: 5 seconds)
Comment 4 keeperlink 2010-07-09 16:09:48 UTC
As for Maven, it fails with message "Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer".

Bean Source:

@Stateless
public class NewSessionBean {
    public int add(int a, int b) {
        return a+b;
    }
}


JUnit Test method:

    public void testAdd() throws Exception {
        System.out.println("add");
        int a = 2;
        int b = 3;
        try {
            NewSessionBean instance = (NewSessionBean)javax.ejb.embeddable.EJBContainer.createEJBContainer().getContext().lookup("java:global/classes/NewSessionBean");
            int expResult = a+b;
            int result = instance.add(a, b);
            assertEquals(expResult, result);
        } catch(Exception e) {
            e.printStackTrace();
            throw e;
        }
    }



Log:

Testsuite: ejb.NewSessionBeanTest
add
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.047 sec

------------- Standard Output ---------------
add
------------- ---------------- ---------------
Testcase: testAdd(ejb.NewSessionBeanTest):        Caused an ERROR
Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at ejb.NewSessionBeanTest.testAdd(NewSessionBeanTest.java:38)


Test ejb.NewSessionBeanTest FAILED
test:
Deleting: C:\DOCUME~1\sergei\LOCALS~1\Temp\TEST-ejb.NewSessionBeanTest.xml
BUILD SUCCESSFUL (total time: 1 second)
Comment 5 Andrey Yamkovoy 2010-07-09 16:14:15 UTC
Could you please attach the project.
Comment 6 keeperlink 2010-07-09 16:22:26 UTC
Created attachment 100736 [details]
Example of Ant project with EJB JUnit test

Attached example of Ant project with EJB JUnit test (Java EE Patterns / EmbeddableGlassfishEJB31Test)
Comment 7 keeperlink 2010-07-09 16:26:04 UTC
Created attachment 100737 [details]
Example of Maven project with EJB JUnit test

Attached example of Maven project with EJB JUnit test
Comment 8 Petr Jiricka 2010-08-26 09:32:05 UTC
Probably related to GlassFish bug https://glassfish.dev.java.net/issues/show_bug.cgi?id=12278 .
Comment 9 crued 2010-09-28 13:48:36 UTC
I also ran into this problem:

NetBeans IDE 6.9.1 (Build 201007282301)
GlassFish Server Open Source Edition 3.0.1 (build 22)
Java: 1.6.0_11; Java HotSpot(TM) Client VM 11.0-b16


I noticed this line in particular, which seems to indicate that it is not properly recognizing the root of the class hierarchy to be build/web/WEB-INF/classes (instead it seems to think it is the . -- the project directory):

java.lang.NoClassDefFoundError:
build/web/WEB-INF/classes/com/abien/presentation/hello/HelloController (wrong
name: com/abien/presentation/hello/HelloController)

I was able to somewhat work around the problem by pointing to the .war file rather than the build directory in my test:

  HashMap<String, Object> props = new HashMap<String, Object>();
  File[] ejbModules = new File[1];
  ejbModules[0] = new File("dist/MyWebApp.war");
  props.put(EJBContainer.MODULES, ejbModules);
  EJBContainer ejbContainer = javax.ejb.embeddable.EJBContainer.createEJBContainer(props);
        Context context = ejbContainer.getContext();

I have to do a "dist" before I can test the functionality, but at least I seem to be able to test now.
Comment 10 Martin Fousek 2011-02-16 11:23:01 UTC
Hi try it again with some of newer bundled GlassFishes. I.e. I used GF v3.1-beta40 for both projects and the tests worked and passed. BTW don't forget change in the maven project the "glassfish.embedded-static-shell.jar" property to the path with new b40 GF.

Closing as worksforme since I was able to run tests successfully on both (ant and maven) projects.