On Mon, Oct 26, 2009 at 10:13 AM, BAltmiks
<[email protected]> wrote:
>
>
>
> 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)."
>

And how do Oracle Support envision you should lookup an Entity?
Using JNDI? And if so how do you do that? How do you configure / setup this?
And how do you get the Entity registered in the first place?



>
> --
> 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.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to