# EJB und Java EE - No Persistence provider



## gutenacht-steph (9. Aug 2010)

Hallo Leute,

ich habe ein Problem, dass mich fast in den Wahnsinn treibt.

(Habe schon viel danach in google geschaut, auch etwas gefunden, aber keinen Nutzen 
daraus gezogen)

Mittels EJB und einem GlassfishServer möchte ich eine Abfrage von meiner Datenbanktabelle machen, allerdings erscheint immer eine Exception beim ausführen meiner Datei, in welcher die Abfrage stattfindet.

Als Persistenzverfahren habe ich TopLink gewählt.

Der Fehler lautet:


```
[TopLink Info]: 2010.08.09 05:22:10.390--ServerSession(28571894)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
Exception in thread "main" javax.persistence.PersistenceException: Exception [TOPLINK-7060] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: Cannot acquire data source [Test2].
Internal Exception: javax.naming.NoInitialContextException: 
        ... 11 more
```

Meine persistence.xml

(Test2 ist meine Datenbankverbindung die ich im Wizard ausgewählt habe, dort steht Name, Passwort, IP der DB drinnen)

[XML]<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="TrafficMonitor-ejbPU" transaction-type="JTA">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <jta-data-source>Test2</jta-data-source>
    <class>_ejb.entities.DBuser</class>
    <class>_ejb.entities.Ip</class>
    <class>_ejb.entities.Vert</class>
    <class>_ejb.entities.Vertrart</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="toplink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>
[/XML]

Ich wäre euch sehr dankbar, falls ihr mir helfen könntet.

LG,

steph


----------



## gman (9. Aug 2010)

Hi,

du hast in deiner persistence.xml:

[XML]<property name="toplink.ddl-generation" value="create-tables"/>[/XML]

angegeben. Werden die Tabellen denn auch angelegt, oder sind die schon vorhanden?
Klingt für mich irgendwie nach einem Rechte-Problem, kann mich aber auch irren.


----------



## Gelöschtes Mitglied 5909 (9. Aug 2010)

> Exception Description: Cannot acquire data source [Test2].
> Internal Exception: javax.naming.NoInitialContextException:



Er kann nicht auf die DataSource aus dem JNDI Context zugreifen


----------



## gutenacht-steph (9. Aug 2010)

Guten Abend,

vielen Dank für die Antworten.

Also die Tabellen hab ich im QueryBrowser bereits zuvor erstellt. 
Mir geht es sowieso nur ums lesen, also ums abfragen von Inhalten.

Hmm, aber was kann ich dagegen tun rail?


----------



## gman (9. Aug 2010)

In der Glassfish-Admin-Console gibt es einen Punkt "JDBC". Darunter kann man JDBC-Connection-Pools 
und DB-Verbindungen anlegen. Letztere muss den Namen haben, den du durch:

[XML]<jta-data-source>Test2</jta-data-source>[/XML]

angegeben hast. Dann sollte es gehen. Ich vergesse diesen Schritt auch immer, deshalb bin ich
auch nicht sofort auf die Fehlerursache gekommen  (Danke, raiL).


----------



## gutenacht-steph (10. Aug 2010)

viielen Dank


----------

