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
