BAltmiks wrote:
>
> Hi Claus,
>
> this is what the Oracle-Support says. I will try these.
>
>
> Hello Bernd,
>
> I tried calling you regarding the issue, however couldn't reach.
>
> As per the issue I understand that you are using trying to lookup the
> Entity Manager instance and you are trying to use Entity Manager
> Factory, but you do not wish to use injection of ....@persistencecontext.
>
> Please let me know if you are using any JPA provider (e.g. kodo,
> hibernate etc).
>
> In JEE the EntityManager or EntityManagerFactory can either be looked
> up in JNDI, or injected into a SessionBean. To look up the
> EntityManager in JNDI it must be published in JNDI such as through a
> <persistence-context-ref> in a SessionBean's ejb-jar.xml file. To
> inject an EntityManager or EntityManagerFactory the
> annotation ....@persistencecontext or ....@persistenceunit are used.
>
> For your reference I am adding both the options (annotation / non-
> annota)
>
> Example SessionBean ejb-jar.xml file with persistence context
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
> version="3.0">
> <enterprise-beans>
> <session>
> <ejb-name>EmployeeService</ejb-name>
> <business-remote>org.acme.EmployeeService</business-remote>
> <ejb-class>org.acme.EmployeeServiceBean</ejb-class>
> <session-type>Stateless</session-type>
> <persistence-context-ref>
> <persistence-context-ref-name>persistence/acme/entity-manager</
> persistence-context-ref-name>
> <persistence-unit-name>acme</persistence-unit-name>
> </persistence-context-ref>
> <persistence-unit-ref>
> <persistence-unit-ref-name>persistence/acme/factory</persistence-unit-
> ref-name>
> <persistence-unit-name>acme</persistence-unit-name>
> </persistence-unit-ref>
> </session>
> </enterprise-beans>
> </ejb-jar>
>
> Example of looking up an EntityManager in JNDI
> ===============================================
>
> InitialContext context = new InitialContext();
> EntityManager entityManager = (EntityManager)context.lookup("java:comp/
> env/persistence/acme/entity-manager");
> ...
>
> Example of looking up an EntityManagerFactory in JNDI
> =====================================================
>
> InitialContext context = new InitialContext();
> EntityManagerFactory factory = (EntityManagerFactory)context.lookup
> ("java:comp/env/persistence/acme/factory");
> ...
>
> Example of injecting an EntityManager and EntityManagerFactory
> ===============================================================
>
> ....@stateless(name="EmployeeService", mappedName="acme/EmployeeService")
> ....@remote(EmployeeService.class)
> public class EmployeeServiceBean implements EmployeeService {
>
> ....@persistencecontext(unitName="acme")
> private EntityManager entityManager;
>
> ....@persistenceunit(unitName="acme")
> private EntityManagerFactory factory;
> ...
> }
>
> Please feel free to get back to me in case of any doubt or query
> regarding the same.
>
>
> Regards,
> Saumajit Das
>
>
>
>
>
>>
> Claus Ibsen-2 wrote:
>>
>>>Hi
>>>
>>>That is the same s*** with the J2ee servers and the JNDI lookup. Its
>>>painful when it does not work and you need to setup all kind
>>>of indirections in various deployment descriptors both standard j2ee
>>>related and server specific.
>>>
>>>I will try googling and look at WebLogic documentation as its a pure
>>>WebLogic + Spring J2ee lookup thingy.
>>
>>
>>
>> On Mon, Aug 31, 2009 at 10:31 AM,
>> BAltmiks<[email protected]> wrote:
>>>
>>> - Camel 2.0M3
>>> - Camel-JPA 2.0M3
>>> - Weblogic 10
>>> - Hibernate-Core 3.3.0.SP1
>>> - Hibernate-EntityManager 3.4.0.GA
>>> - Configuration in Spring XML
>>>
>>>
>>> Hi,
>>>
>>> I tried to make use of the jpa component. But I have problems to get an
>>> EntityManagerFactory from JNDI on Weblogic 10. As described in the
>>> http://static.springsource.org/spring/docs/2.5.x/reference/orm.html#orm-jpa
>>> Spring JPA Documentation I do a JNDI-Lookup. persistence-unit-ref
>>> entries
>>> are defined in the Java EE deployment descriptor (ejb-jar.xml).
>>>
>>> The Exception is:
>>>
>>> javax.naming.NameNotFoundException: Unable to resolve 'TMD_PERSISTENCE'.
>>> Resolved ''; remaining name 'TMD_PERSISTENCE'
>>> at
>>> weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1138)
>>> at
>>> weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:251)
>>> at
>>> weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:171)
>>> at
>>> weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:205)
>>> at
>>> weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
>>> at
>>> weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
>>> at javax.naming.InitialContext.lookup(InitialContext.java:351)
>>> at
>>> org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155)
>>> at
>>> org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88)
>>> at
>>> org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:153)
>>> at
>>> org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
>>>
>>> Can anybody give me a hint what i am doing wrong?
>>>
>>> Thanks,
>>> Bernd Altmiks
>>>
>>> My Camel-Context:
>>> ...
>>> <jee:jndi-lookup id="eMFactory" jndi-name="TMD_PERSISTENCE"/>
>>>
>>> <bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
>>> <property name="entityManagerFactory" ref="eMFactory" />
>>> <property name="transactionManager" ref="txManager" />
>>> </bean>
>>>
>>> <bean id="txManager"
>>> class="org.springframework.transaction.jta.WebLogicJtaTransactionManager"/>
>>> ...
>>>
>>>
>>> My ejb-jar.xml
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>> http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
>>> version="3.0">
>>> <enterprise-beans>
>>>
>>> <session>
>>> <ejb-name>ITMDClientDAO</ejb-name>
>>> <ejb-class>tmd.al.dao.TMDClientDAO</ejb-class>
>>> <session-type>Stateless</session-type>
>>> <persistence-unit-ref>
>>>
>>> <persistence-unit-ref-name>TMD_PERSISTENCE</persistence-unit-ref-name>
>>>
>>> <persistence-unit-name>TMD_PERSISTENCE</persistence-unit-name>
>>>
>>> <mapped-name>TMD_PERSISTENCE</mapped-name>
>>> </persistence-unit-ref>
>>> </session>
>>> </enterprise-beans>
>>> </ejb-jar>
>>>
>>>
>>> My persistence.xml
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <persistence xmlns="http://java.sun.com/xml/ns/persistence"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> version="1.0"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
>>> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
>>> <persistence-unit name="TMD_PERSISTENCE" transaction-type="JTA">
>>> <provider>org.hibernate.ejb.HibernatePersistence</provider>
>>>
>>> <jta-data-source>com.mummert.tributum.tbpersistence.TributumDataSource</jta-data-source>
>>> <class>tmd.al.entity.TMDMessage</class>
>>> <properties>
>>> <property name="hibernate.dialect"
>>> value="org.hibernate.dialect.Oracle10gDialect"/>
>>> <property name="hibernate.transaction.manager_lookup_class"
>>> value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />
>>> <property name="hibernate.show_sql" value="false" />
>>> <property name="hibernate.format_sql" value="false" />
>>> <property name="hibernate.use_sql_comments" value="false"/>
>>> <property name="hibernate.generate_statistics" value="false" />
>>> <property
>>> name="hibernate.jndi.weblogic.jndi.replicateBindings"
>>> value="false" />
>>> <property name="hibernate.query.factory_class"
>>> value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory"/>
>>> <property name="hibernate.cache.use_second_level_cache"
>>> value="false"/>
>>> </properties>
>>> </persistence-unit>
>>> </persistence>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/JPA-component-in-a-JEE5-environment%3A-EntityManagerFactory-from-JNDI-tp25219979p25219979.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
>
Doesn't work on Weblogic. There is no way to get the EntityManager from
JNDI. Here is the answer from the Oracle-Support:
"According the EJB3 specification, you need to lookup the entity from the
same container (from any servlet or session bean running on that
container)."
--
View this message in context:
http://www.nabble.com/JPA-component-in-a-JEE5-environment%3A-EntityManagerFactory-from-JNDI-tp25219979p26056419.html
Sent from the Camel - Users mailing list archive at Nabble.com.