I've managed to track down the Glassfish revision that fixed the problem
there, hoping that might help someone that knows more than me about this
stuff :) :

http://java.net/projects/glassfish/sources/svn/revision/25742 (the note
"Added interceptor registration spi to enable jax-rs injection into EJB
components implemented as resources")

<http://java.net/projects/glassfish/sources/svn/revision/25742>/Björn

Den 1 januari 2011 01:44 skrev Björn Harrtell <[email protected]>:

> Hi,
>
> I've been investigating using injected EntityManager into jersey resources
> to get context managed transactions. I've gotten it to work with Glassfish 3
> but have failed to get it working with OpenEJB which I would prefer to be
> using.
>
> The jersey issue http://java.net/jira/browse/JERSEY-230 describes both a
> preferred implementation and a fix done for Glassfish 1,5 years ago (fix
> might be relevant?). I've implemented a resource called PersonResource as
> desribed in the issue with a persistance unit called "testunit" and it works
> with Glassfish 3.0.1 (I can successfully make a transaction using the
> injected EntityManager), but with Tomcat 6/OpenEJB 3.1.3 I get a null
> reference for the EntityManager i.e it doesn't seem to be injected. The
> OpenEJB log indicates that things get initialized correctly (?) at
> deployment:
>
> 2011-01-01 01:11:47,966 - INFO  - Configuring enterprise application:
> /home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/jpatest2
> 2011-01-01 01:11:48,115 - INFO  - Configuring
> PersistenceUnit(name=testunit)
> 2011-01-01 01:11:48,127 - INFO  - Auto-creating a Resource with id 'Default
> JDBC DatabaseNonJta' of type 'DataSource for 'testunit'.
> 2011-01-01 01:11:48,127 - INFO  - Configuring Service(id=Default JDBC
> DatabaseNonJta, type=Resource, provider-id=Default JDBC Database)
> 2011-01-01 01:11:48,128 - INFO  - Creating Resource(id=Default JDBC
> DatabaseNonJta)
> 2011-01-01 01:11:48,148 - INFO  - Adjusting PersistenceUnit testunit
> <jta-data-source> to Resource ID 'Default JDBC Database' from 'jdbc/test'
> 2011-01-01 01:11:48,148 - INFO  - Adjusting PersistenceUnit testunit
> <non-jta-data-source> to Resource ID 'Default JDBC DatabaseNonJta' from
> 'null'
> 2011-01-01 01:11:48,164 - INFO  - Enterprise application
> "/home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/jpatest2"
> loaded.
> 2011-01-01 01:11:48,164 - INFO  - Assembling app:
> /home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/jpatest2
> 2011-01-01 01:11:48,824 - INFO  - PersistenceUnit(name=testunit,
> provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider
> time 655ms
> 2011-01-01 01:11:48,913 - INFO  - Jndi(name=PersonResourceLocalBean) -->
> Ejb(deployment-id=PersonResource)
> 2011-01-01 01:11:48,959 - INFO  - Created Ejb(deployment-id=PersonResource,
> ejb-name=PersonResource, container=Default Stateless Container)
> 2011-01-01 01:11:48,959 - INFO  - Deployed
> Application(path=/home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/jpatest2)
> 2011-01-01 01:11:49,201 - INFO  - Configuring enterprise application:
> /home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/openejb
> 2011-01-01 01:11:49,232 - INFO  - Enterprise application
> "/home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/openejb"
> loaded.
> 2011-01-01 01:11:49,232 - INFO  - Assembling app:
> /home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/openejb
> 2011-01-01 01:11:49,232 - INFO  - Deployed
> Application(path=/home/bjorn/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/openejb)
>
> I'm guessing a different implementation using separate classes for the bean
> and resource might work but I'm not really sure how to do that and would
> prefer the implementation as is described in
> http://java.net/jira/browse/JERSEY-230
>
> /Björn
>

Reply via email to