users@glassfish.java.net

Re: Cannot use embedded container for unit tests

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Fri, 26 Feb 2010 15:40:38 -0800

Birol Yildiz wrote:
> On 26.02.2010, at 22:10, Marina Vatkina <Marina.Vatkina_at_Sun.COM> wrote:
>
>
>> Birol Yildiz wrote:
>>
>>> On Friday, February 26, 2010, Marina Vatkina
>>> <Marina.Vatkina_at_sun.com> wrote:
>>>
>>>
>>>> Birol Yildiz wrote:
>>>>
>>>> On Thu, Feb 25, 2010 at 9:58 PM, Marina Vatkina <Marina.Vatkina_at_sun.com
>>>> <mailto:Marina.Vatkina_at_sun.com>> wrote:
>>>>
>>>> As you can see, the problem starts with:
>>>>
>>>>
>>>>
>>>> > WARNUNG: Error in annotation processing:
>>>> java.lang.NoClassDefFoundError:
>>>> > build/classes/com/sample/crud/CrudService (wrong name:
>>>> > com/sample/crud/CrudService)
>>>>
>>>> Looks like build/classes are not part of your classpath.
>>>>
>>>> Netbeans automatically includes these locations to the classpath.
>>>> But even if do it manually, I get the same error message.
>>>>
>>>>
>>>> build/classes/com/sample/crud/CrudService seems like a class with
>>>> a wrong package name.
>>>>
>>>>
>>> The class has the correct packet declaration. Other than that, how
>>> can
>>> a package have a wrong name?
>>>
>>>
>> Does your package name start with "build.classes"?
>>
> No, it starts with com...
>

That what I would suspect as well. In which case why would the code look
for the package with "build.classes"? May be it's an NB bug? Did you try
to ask there?

>>>> Glassfish v3 seems to be not quiet ready. I also cannot deploy an
>>>> ejb-jar if it contains external libraries.
>>>>
>>>>
>>>> Are you talking about embedded support?
>>>>
>>>>
>>> No, I wanted to use the embedding API for unit testing only.
>>>
>>>
>> OK. Then there might be setup issues, but basic testing (e.g. EJB
>> with JPA) should be fine.
>>
>>>> If you are using EJB 3.1 embeddable API, your classpath must
>>>> include all relevant classes, and access more than 1 EJB module,
>>>> but there is no support for an ear deployment (the spec doesn't
>>>> cover it).
>>>>
>>>> I have to include it into an
>>>>
>>>> ear to successfully deploy it. I'm trying to migrate a project
>>>> from Glassfish v2.1 to Glassfish v3.
>>>>
>>>>
>>>> That is not an embedded case, right? There is no embedded support
>>>> in Glassfish v2.1. So if you have issues with migration, I suggest
>>>> to start a separate thread.
>>>>
>>>> thanks,
>>>> -marina
>>>>
>>>>
>>>>
>>>> Regards
>>>>
>>>>
>>>> Regards,
>>>> -marina
>>>>
>>>> Birol Yildiz wrote:
>>>>
>>>> The whole exception trace:
>>>>
>>>> 25.02.2010 19:57:54
>>>> com.sun.enterprise.v3.server.AppServerStartup run
>>>> INFO: GlassFish v3 (74.2) startup time : Embedded(1659ms)
>>>> startup services(834ms) total(2493ms)
>>>> 25.02.2010 19:57:54
>>>> org.glassfish.admin.mbeanserver.JMXStartupService
>>>> $JMXConnectorsStarterThread
>>>> run
>>>> INFO: JMXStartupService: JMXConnector system is disabled,
>>>> skipping.
>>>> 25.02.2010 19:57:54
>>>>
>>>> com.sun.enterprise.transaction.JavaEETransactionManagerSimplified
>>>> initDelegates
>>>> INFO: Using
>>>>
>>>> com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate
>>>>
>
>
>
>>>> as the delegate
>>>> 25.02.2010 19:57:55 AppServerStartup run
>>>> INFO: [Thread[GlassFish Kernel Main Thread,5,main]] started
>>>> 25.02.2010 19:58:08
>>>> com.sun.enterprise.deployment.archivist.Archivist
>>>> readAnnotations
>>>> WARNUNG: Error in annotation processing:
>>>> java.lang.NoClassDefFoundError:
>>>> build/classes/com/sample/crud/CrudService (wrong name:
>>>> com/sample/crud/CrudService)
>>>> 25.02.2010 19:58:08 org.glassfish.api.ActionReport failure
>>>> SCHWERWIEGEND: Exception while deploying the app
>>>> java.lang.IllegalArgumentException: Invalid ejb jar
>>>> [NotificationService-ejb.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
>>>> com.test.location.GeoCoderServiceTest.setUpClass
>>>> (GeoCoderServiceTest.java:30)
>>>> 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
>>>> <mailto:Marina.Vatkina_at_sun.com
>>>> <mailto:Marina.Vatkina_at_sun.com>>>
>>>> wrote:
>>>>
>>>> What are the messages before this exception?
>>>>
>>>> thanks,
>>>> -marina
>>>>
>>>>
>>>> Birol Yildiz wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm trying to use the the embedded ejb container for
>>>> unit
>>>> testing. I'm getting the following message (stack
>>>> trace
>>>> below):
>>>>
>>>> The following providers:
>>>> org.glassfish.ejb.embedded.EJBContainerProviderImpl
>>>> Returned null from createEJBContainer call.
>>>>
>>>> I'm using NetBeans 6.8 and GlassFish v3 (build
>>>> 74.2). The
>>>> glassfish-embedded-static-shell.jar is included in
>>>> the test
>>>> libraries (NetBeans did this automatically). I also
>>>> tried
>>>> using
>>>> glassfish-embedded-all-3.01-b02.jar.
>>>>
>>>>
>>>> STACK TRACE
>>>> ----------------------
>>>> 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.bypa.notificationservice.location.GeoCoderServiceTest.setUpClass(
>>>> GeoCoderServiceTest.java:30)
>>>> 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.
>>>> )
>>>>
>>>> Regards,
>>>> Birol
>>>>
>>>>
>>>>
>>>> ---
>>>> ------------------------------------------------------------------
>>>> To unsubscribe, e-mail:
>>>> users-unsubscribe_at_glassfish.dev.java.net
>>>> <mailto:users-unsubscribe_at_glassfish.dev.java.net>
>>>> <mailto:users-unsubscribe_at_glassfish.dev.java.net
>>>> <mailto:users-unsubscribe_at_glassfish.dev.java.net>>
>>>>
>>>> For additional commands, e-mail:
>>>> users-help_at_glassfish.dev.java.net
>>>> <mailto:users-help_at_glassfish.dev.java.net>
>>>> <mailto:users-help_at_glassfish.dev.java.net
>>>>
>>>>
>>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>