# EclipseLink Persistence Provider?



## Weisswurst (11. Feb 2009)

Hi!

Ich möchter gerne EclipseLink mit einer SE Anwendung verwenden.
Leider Bekomme ich beim aufruf der EntityManagerFactory folgende Exception:


```
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named EclipseLinkTest
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
	at de.eclipselinktest.RunTest.<init>(RunTest.java:14)
	at de.eclipselinktest.eclipseLinkTest.main(eclipseLinkTest.java:11)
```

Meine Persitence.xml sieht aus wie folgt:

```
<persistence-unit name="EclipseLinkTest" transaction-type="jta">
  <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
  <jta-data-source>jdbc/EclipseLinkTestDS</jta-data-source>
 
  
                                       
  
  
  <exclude-unlisted-classes>false</exclude-unlisted-classes>
  <properties>
			<property name="eclipselink.logging.level" value="FINE"/>
			<property name="eclipselink.logging.thread" value="false"/>
			<property name="eclipselink.logging.session" value="false"/>
			<property name="eclipselink.logging.timestamp" value="false"/>
			<property name="eclipselink.logging.exceptions" value="false"/>
 
			
			<property name="eclipselink.jdbc.url" value="..."/>
			<property name="eclipselink.jdbc.user" value="..."/>
			<property name="eclipselink.jdbc.password" value="..."/>
			<property name="eclipselink.jdbc.driver" value="net.sourceforge.jtds.jdbc.Driver"/>
			<property name="eclipselink.jdbc.read-connections.min" value="1"/>
			<property name="eclipselink.jdbc.write-connections.min" value="1"/>
			<property name="eclipselink.target-database" value="..."/>
  </properties>
</persistence-unit>
```

Den Test habe ich mal so versucht.

```
@PersistenceUnit
	EntityManagerFactory emf = Persistence.createEntityManagerFactory("EclipseLinkTest");
    EntityManager em = emf.createEntityManager();

	public void test() {
		for(long primaryKey = 1; primaryKey < 10; primaryKey++) {
        User user = em.find(User.class, primaryKey);
        if (user != null) {           
        	System.out.println(user.toString());         
        	}
		}
	}
```

Im Classpath habe ich folgende Jars, die auch dem Projekt hinzugefügt wurden:


eclipselink.jar
javax.persistence_1.0.0.jar
jtds-1.2.2.jar

Fehlt mir irgendwas? Hab ich was vergessen?
Hoffentlich hat hier schonma jemand mit EclipseLink in SE geschafft 

Thx und Gruß
Wurst


----------



## Guest (11. Feb 2009)

Ist die persistence.xml auch im META-INF Verzeichnis?
Wenn du mit Eclipse arbeitest, dann schau mal unter Preferences -> Java -> Compiler -> Builder -> Filtered resources nach,
ob da nicht zufällig *.xml dabei ist. Das verhindert, dass die persistence.xml im Ausgabeverzeichnis landet. Irre, was?


----------



## maki (11. Feb 2009)

>> Meine Persitence.xml sieht aus wie folgt...

Du meinst wohl *p*ersistence.xml


----------



## Weisswurst (11. Feb 2009)

Passt beides.
Und die persistence.xml landet auch im bin Verzeichnis.
Wenn ich stuss in die xml schreibe beschwert er sich, dass die xml nich passt.
Also reingucken tut er schon...


----------



## Guest (11. Feb 2009)

Kommentier mal das <jta-data-source> aus. Nanu?


----------



## Weisswurst (11. Feb 2009)

Funktioniert leider auch mitder Änderung nicht


----------



## Gelöschtes Mitglied 5909 (11. Feb 2009)

mach mal transaction-type="jta" und <jta-data-source> weg. Ansonsten probier mal OpenJPA aus und schau ob es damit geht


----------



## Weisswurst (14. Feb 2009)

So...
Habs nu raus.
In der persistence.xml fehlt das root element <persistence>...
Unglaublich wievielen ich das gezeigt habe, die das einschließlich mir, nich gesehen haben...

Naja, sowas passiert mir denk ich nimmer


----------

