Betrachten Sie die folgende Zeile im Stacktrace
Sie können sich vorstellen, was das Problem sein kann. Das erste Problem ist meiner Meinung nach das Problem mit dem Datenbanktreiber. 1527
ist die standardmäßige Portnummer der Derby-Datenbank, die mit dem Glassfish-Anwendungsserver ausgeliefert wird.
Da Sie in Ihrer Konfiguration keine Datenquelle angegeben haben, versucht der Server, die Standarddatenbank zu finden, die in diesem Fall Derby ist. aber Sie können sich nicht mit dieser Datenbank verbinden, da Sie keine Verbindungsinformationen für diese Datenbank angegeben haben.
Sie müssen also in Ihrer META-INF/persistence.xml
Folgendes tun :
-
Geben Sie den
transaction-type
an (in Ihrer Konfiguration wird davon ausgegangen, dass es sich um JTA handelt, da Sie Ihre Anwendung gemäß Spezifikation in einer JEE-Umgebung bereitstellen) als<persistence-unit name="unit" transaction-type="JTA">
-
Geben Sie die
jta-data-source
an -Element als untergeordnetes Element vonpersistence-unit
<persistence-unit name="unit" transaction-type="JTA"> ... <jta-data-source>your_data_source_name</jta-data-source> ... </persistence-unit>
Damit die obige Konfiguration funktioniert, müssen Sie zuerst Ihren Anwendungsserver (Glassfish) konfigurieren. Dazu müssen Sie den MySQL-jdbc-Treiber herunterladen, entpacken und die JAR-Datei nach <glassfish_installation_directory>/glassfish/domains/domain1/lib
kopieren (Ich gehe hier von Glassfish 3.1 aus). Der Grund dafür ist, dass Glassfish nicht mit dem MySQL-Treiber ausgeliefert wird, also müssen Sie dies selbst tun.
Starten Sie danach Glassfish und öffnen Sie die Admin-Konsole (http://localhost:4848 ). Öffnen Sie im linken Bereich
Resources/JDBC/JDBC Connection Pools
und erstellen Sie einen neuen VerbindungspoolResources/JDBC/JDBC Resources
und erstellen Sie eine neue Datenquelle. Der Name, den Sie Ihrer Datenquelle geben, ist der, den Sie in Ihrerpersistence.xml
haben wie oben erwähnt.