Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann keine Verbindung zu MySQL herstellen - Glassfish und Hibernate

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 von persistence-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

  1. Resources/JDBC/JDBC Connection Pools und erstellen Sie einen neuen Verbindungspool
  2. Resources/JDBC/JDBC Resources und erstellen Sie eine neue Datenquelle. Der Name, den Sie Ihrer Datenquelle geben, ist der, den Sie in Ihrer persistence.xml haben wie oben erwähnt.