sql >> Databasteknik >  >> RDS >> Mysql

Kan inte ansluta till MySQL - Glassfish och Hibernate

Tittar på följande rad i stacktrace

du kan gissa vad problemet kan vara. Det första problemet är problemet med databasdrivrutinen tror jag. 1527 är standardportnumret för derbydatabasen som levereras med Glassfish-applikationsservern.

Eftersom du inte har angett någon datakälla i din konfiguration försöker servern hitta standarddatabasen som är derby i det här fallet; men du kan inte ansluta till den databasen eftersom du inte har angett någon anslutningsinformation för den här databasen.

Så du måste göra följande i din META-INF/persistence.xml :

  • Ange transaction-type (i din konfiguration antas det vara JTA eftersom du distribuerar din applikation i JEE-miljö per specifikation) som

    <persistence-unit name="unit" transaction-type="JTA">
    
  • Ange jta-data-source element som ett underordnat persistence-unit

    <persistence-unit name="unit" transaction-type="JTA">
        ...
        <jta-data-source>your_data_source_name</jta-data-source>
        ...
    </persistence-unit>
    

För att ovanstående konfiguration ska fungera måste du först konfigurera din applikationsserver (Glassfish). För att göra det måste du ladda ner MySQL jdbc-drivrutinen, packa upp den och kopiera jar-filen till <glassfish_installation_directory>/glassfish/domains/domain1/lib (Jag antar här Glassfish 3.1). Anledningen till detta är att Glassfish inte levereras med MySQL-drivrutin, så du måste göra detta själv.

Efter detta starta Glassfish och öppna administratörskonsolen (http://localhost:4848 ). Öppna den vänstra rutan

  1. Resources/JDBC/JDBC Connection Pools och skapa en ny anslutningspool
  2. Resources/JDBC/JDBC Resources och skapa en ny datakälla. Namnet du ger din datakälla är det du måste i din persistence.xml som nämnts ovan.


  1. MySql - VÄLJ TimeStamp Column i UTC-format

  2. Utländska nyckelproblem med Apartment gem

  3. Oracle SQL Query Filter i JOIN ON vs WHERE

  4. Varför kan jag inte använda en variabel som tabellnamn i en lagrad procedur?