> Note : > I'm using a persistence.xml for single persitence unit > creation, and this > test works fine. I've had a dive into the source code, and found the > provider is lookuped and found by the glassfish persistence > implementation > class. The exception is raised on the open jpa side, and I > know I'm missing > some configuration elements, but I cannot guess what's missing? > any hint?
The only exception that I see in the trace you gave us is thrown by the spec implementation jar. I'm not looking at the source for that code, but my guess would be that the failure is happening because of a classpath error, such that OpenJPA is not available in the classloader that is visible to the Persistence class. Could you post your persistence.xml file and any details about how your classloader structure is set up? Thanks, -Patrick -- Patrick Linskey BEA Systems, Inc. _______________________________________________________________________ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. > -----Original Message----- > From: Erwan Le Goulven [mailto:[EMAIL PROTECTED] > Sent: Friday, April 06, 2007 4:46 AM > To: open-jpa-dev@incubator.apache.org > Subject: Programmatical EntityManagerFactory init > > Messieurs-dames, > > As I could not find much clues about the right way to do it, > here I come: > I'm trying to get an EntityManagerFactory properly setup from the > Persistence class, but I cannot get further than the > following exception > > javax.persistence.PersistenceException: No Persistence provider for > EntityManager named teamplay_test > at javax.persistence.Persistence.createEntityManagerFactory( > Persistence.java:89) > at > com.gdteam.teamplay.domain.manager.TeamplayEMFactoryManager.get( > TeamplayEMFactoryManager.java:60) > at com.gdteam.teamplay.test.persistence.PersistenceUtilTest.setUp( > PersistenceUtilTest.java:19) > at junit.framework.TestCase.runBare(TestCase.java:125) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > > Here is the code part that leads to the exception: > > public class TeamplayEMFactoryManager { > ... > private final Map<String, String> props = new > HashMap<String, String>(); > private final Map<String, EntityManagerFactory> map = new > HashMap<String, EntityManagerFactory>(); > ... > private TeamplayEMFactoryManager() { > props.put("openjpa.ConnectionDriverName", > "org.hsqldb.jdbcDriver"); > props.put("openjpa.ConnectionUserName", "sa"); > props.put("openjpa.ConnectionPassword", ""); > props.put("openjpa.Log", "DefaultLevel=WARN, Tool=INFO"); > props.put("openjpa.MetaDataFactory", > "jpa(Types="+buildTypes()+")"); > } > > .. > > public EntityManagerFactory get(String url) { > > EntityManagerFactory factory = null; > > if (null == url || url.length() == 0 ) { > url = "default"; > } > > factory = this.map.get(url); > > if (null == factory) { > if ( "default".equals(url)) { > 1- factory = > Persistence.createEntityManagerFactory(null); > } else { > Map<String , String> map = new HashMap<String, > String>(props); > map.put("openjpa.ConnectionURL", buildUrl(url)); > 2- factory = > Persistence.createEntityManagerFactory(url,map); > } > this.map.put(url, factory); > } > return factory; > } > ... > } > > > Note : > I'm using a persistence.xml for single persitence unit > creation, and this > test works fine. I've had a dive into the source code, and found the > provider is lookuped and found by the glassfish persistence > implementation > class. The exception is raised on the open jpa side, and I > know I'm missing > some configuration elements, but I cannot guess what's missing? > any hint? > > thank you guys > Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it.