I'm using openejb-core 4.0.0-beta-1 for my test cases.

I was using @javax.annotation.ManagedBean but i haven't managed to get it to
work yet.  I'll keep trying tomorrow though.

I was aware that creating and destroying an EJBContainer per test case
removed the need for any annotations such as @ManagedBean or @LocalClient
but it also slows down the test case execution significantly.  I only have
stateless ejbs and so don't need to recreate the container for each test
case class.  I do have a DataSource resource created in the ejb container
but i blow away and rebuild the schema and repopulate it with data before
each test case rather than recreating the entire embedded ejb container.

Now that I have this working using @LocalClient, my test cases run
significantly faster, so i'm happy with the outcome.  I still wish it was
possible to inject using the @Inject annotation.  After reading your reply
saying @Inject should be possible, i retested it but it doesn't work. 
Nothing gets injected and i end up with NullPointerExceptions.

I'm sure there's a very good reason you can't inject into any class instance
that isn't annotated with @LocalClient or @ManagedBean .  Could anyone tell
me what it is because its something i've found myself wanting to do on a
couple of occasions now but always get thwarted by the "could not find meta
data" exception.  For example, i created a Servlet test case using HttpUnit
and i wanted to inject ejbs from an embedded tomee container into an
instance of a servlet that i created, but couldn't.


--
View this message in context: 
http://openejb.979440.n4.nabble.com/Injection-fails-in-any-class-that-didn-t-instantiate-an-embedded-ejb-container-tp4396189p4397059.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to