Yes, in fact with any Java EE 5 container, we should make it a policy
in
the examples to assume that the container is taking care of the persistence
unit rather than Seam. Seam should only step in when the container isn't
willing or able (such as with JBoss AS 4.2).
What? This isn't something that is mandated by the EE5 spec so how does
this work? Looking up the EMF over JNDI only works in JBoss. The problem
here isn't about EMF lookup, it's about whether the container deploys the PU
or not (JBoss 4.2 doesn't for a war, whilst JBoss 5 does).
That's not true. If defined as persistence-unit-ref in web.xml (I know,
silly requirement) a Java EE container will load the persistence unit and
make it available in JNDI for that application.
5.3.1 of JPA spec:
"Within a Java EE environment, an entity manager factory may be injected
using the Persistence-Unit annotation or obtained through JNDI lookup."
JBoss 4 did not support this. Hibernate on JBoss AS just happens to support
putting it in JNDI defined in a vendor properties (w/o the resource
reference).
-Dan
--
Dan Allen
Software consultant | Author of Seam in Action
http://mojavelinux.com
http://mojavelinux.com/seaminaction
NOTE: While I make a strong effort to keep up with my email on a daily
basis, personal or other work matters can sometimes keep me away
from my email. If you contact me, but don't hear back for more than a week,
it is very likely that I am excessively backlogged or the message was
caught in the spam filters. Please don't hesitate to resend a message if
you feel that it did not reach my attention.