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-typean (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-sourcean -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 (https://localhost:4848 ). Öffnen Sie im linken Bereich
Resources/JDBC/JDBC Connection Poolsund erstellen Sie einen neuen VerbindungspoolResources/JDBC/JDBC Resourcesund erstellen Sie eine neue Datenquelle. Der Name, den Sie Ihrer Datenquelle geben, ist der, den Sie in Ihrerpersistence.xmlhaben wie oben erwähnt.