Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile connettersi a MySQL - Glassfish e Hibernate

Osservando la riga seguente nello stacktrace

puoi indovinare quale può essere il problema. Il primo problema è il problema del driver del database, penso. 1527 è il numero di porta predefinito del database derby fornito con il server delle applicazioni Glassfish.

Poiché non hai fornito alcuna origine dati nella tua configurazione, il server sta cercando di trovare il database predefinito che in questo caso è derby; ma non puoi connetterti a quel database poiché non hai fornito alcuna informazione di connessione per questo database.

Quindi devi fare quanto segue nel tuo META-INF/persistence.xml :

  • Fornisci il transaction-type (nella tua configurazione si presume che sia JTA perché stai distribuendo la tua applicazione in ambiente JEE secondo le specifiche) come

    <persistence-unit name="unit" transaction-type="JTA">
    
  • Fornisci il jta-data-source elemento come figlio di persistence-unit

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

Affinché la configurazione di cui sopra funzioni, è necessario configurare prima il server delle applicazioni (Glassfish). Per farlo devi scaricare il driver MySQL jdbc, scompattarlo e copiare il file jar in <glassfish_installation_directory>/glassfish/domains/domain1/lib (Sto assumendo qui Glassfish 3.1). La ragione di ciò è che Glassfish non viene fornito con il driver MySQL, quindi devi farlo tu stesso.

Dopodiché, avvia Glassfish e apri la console di amministrazione (http://localhost:4848 ). Nel riquadro sinistro apri

  1. Resources/JDBC/JDBC Connection Pools e crea un nuovo pool di connessioni
  2. Resources/JDBC/JDBC Resources e creare una nuova origine dati. Il nome che dai alla tua origine dati è quello che devi inserire nel tuo persistence.xml come detto sopra.