I have exactly the same behavior on G-mo 2.1 Googling didn't help and finally I just use datasource as is in persistence module (without reference) but I declared persistence module itself in geronimo-web.xml like this one below and use separate descriptors for deployment for different cases :
<jpa:persistence version="1.0" xmlns:jpa='http://java.sun.com/xml/ns/persistence'> <jpa:persistence-unit name="equipment-pu" transaction-type="JTA"> <jpa:provider>org.apache.openjpa.persistence.PersistenceProviderImpl</jpa:provider> <jpa:jta-data-source>jdbc%2FAAF</jpa:jta-data-source> <jpa:non-jta-data-source>jdbc%2FAAF</jpa:non-jta-data-source> <jpa:class>ssi.api.jpa.company.Description</jpa:class> <jpa:class>ssi.api.jpa.company.Equipment</jpa:class> <jpa:class>ssi.api.jpa.company.EquipmentMaintanence</jpa:class> <jpa:class>ssi.api.jpa.company.EquipmentMaintanenceType</jpa:class> <jpa:class>ssi.api.jpa.company.EquipmentType</jpa:class> <jpa:exclude-unlisted-classes>true</jpa:exclude-unlisted-classes> <jpa:properties> <jpa:property name="openjpa.Log" value="DefaultLevel=TRACE, Tool=INFO, SQL=TRACE"/> <jpa:property name="openjpa.jdbc.DBDictionary" value="ssi.api.jpa.AS400Dictionary"/> <!-- <jpa:property name="openjpa.jdbc.SynchronizeMappings" value="validate"/> <jpa:property name="openjpa.jdbc.TransactionIsolation" value="none"/> <jpa:property name="openjpa.LockManager" value="none"/> <jpa:property name="openjpa.ConnectionRetainMode" value="always"/> <jpa:property name="openjpa.FlushBeforeQueries" value="true"/> --> </jpa:properties> </jpa:persistence-unit> </jpa:persistence> LDevil wrote: > > Hi, > > I do not know what should i put in jta-data-source and non-jta-data-source > elements in persistence.xml file. > > I have created database pool with name: jdbc/postgresDS > My geronimo-web.xml file contains: > <nam:resource-ref> > <nam:ref-name>postgres</nam:ref-name> > <nam:resource-link>jdbc/postgresDS</nam:resource-link> > </nam:resource-ref> > > My web.xml contains: > <resource-ref> > <description>PostgreSQL Datasource</description> > <res-ref-name>postgres</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > <res-sharing-scope>Shareable</res-sharing-scope> > </resource-ref> > > When I put <non-jta-data-source>postgres</non-jta-data-source> in > persistence.xml file, following error appears during deployment: > Unable to resolve reference "NonJtaDataSourceWrapper" > ... > due to: No matches for referencePatterns: > [?name=postgres#org.apache.geronimo.naming.ResourceSource] > > When I changed value of <non-jta-data-source> to jdbc/postgresDS there > were no erros during deployment, but when I run following code: > > EntityManagerFactory emf = > Persistence.createEntityManagerFactory("default"); > EntityManager entityManager = emf.createEntityManager(); > > This error apperars: > 12:24:46,203 ERROR [TestDB]:281 - Servlet.service() for servlet TestDB > threw exception > <openjpa-1.0.1-r420667:592145 nonfatal general error> > org.apache.openjpa.persistence.PersistenceException: There was an error > duing JNDI lookup of the name "jdbc/postgresDS". > at > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:205) > at > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) > at > net.oledzki.novex.sklep2000.receiver.servlets.TestDB.doGet(TestDB.java:94) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > at > org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396) > at > org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Unknown Source) > Caused by: org.apache.commons.lang.exception.NestableRuntimeException: > There was an error duing JNDI lookup of the name "jdbc/postgresDS". > at > org.apache.openjpa.lib.conf.Configurations.lookup(Configurations.java:592) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.lookupConnectionFactory(OpenJPAConfigurationImpl.java:966) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getConnectionFactory(OpenJPAConfigurationImpl.java:954) > at > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:801) > at > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:568) > at > org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1221) > at > org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:476) > at > org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:401) > at > org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102) > at > org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:82) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:861) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:852) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:630) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:169) > ... 23 more > Caused by: javax.naming.NotContextException: jdbc/postgresDS > at > org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:167) > at > org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:603) > at javax.naming.InitialContext.lookup(Unknown Source) > at > org.apache.openjpa.lib.conf.Configurations.lookup(Configurations.java:590) > ... 36 more". > ... > > What should I do to fix this problem? > -- > Best regards, > Maciej Olędzki > > > -- View this message in context: http://www.nabble.com/Problem-with-persistence.xml-%28how-to-use-data-source-%29-tp16380414s134p16384230.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
