Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de se connecter à MySQL - Glassfish et Hibernate

En regardant la ligne suivante dans le stacktrace

vous pouvez deviner quel peut être le problème. Le premier problème est le problème du pilote de base de données, je pense. 1527 est le numéro de port par défaut de la base de données derby qui est livrée avec le serveur d'application Glassfish.

Comme vous n'avez fourni aucune source de données dans votre configuration, le serveur essaie de trouver la base de données par défaut qui est derby dans ce cas ; mais vous ne pouvez pas vous connecter à cette base de données car vous n'avez fourni aucune information de connexion pour cette base de données.

Vous devez donc faire ce qui suit dans votre META-INF/persistence.xml :

  • Indiquez le transaction-type (dans votre configuration, il est supposé être JTA car vous déployez votre application sur un environnement JEE selon les spécifications) en tant que

    <persistence-unit name="unit" transaction-type="JTA">
    
  • Fournissez le jta-data-source élément en tant qu'enfant de persistence-unit

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

Pour que la configuration ci-dessus fonctionne, vous devez d'abord configurer votre serveur d'application (Glassfish). Pour ce faire, vous devez télécharger le pilote MySQL jdbc, le décompresser et copier le fichier jar dans <glassfish_installation_directory>/glassfish/domains/domain1/lib (Je suppose ici Glassfish 3.1). La raison en est que Glassfish n'est pas livré avec le pilote MySQL, vous devez donc le faire vous-même.

Après cela, démarrez Glassfish et ouvrez la console d'administration (http://localhost:4848 ). Dans le volet de gauche ouvert

  1. Resources/JDBC/JDBC Connection Pools et créer un nouveau pool de connexion
  2. Resources/JDBC/JDBC Resources et créer une nouvelle source de données. Le nom que vous donnez à votre datasource est celui que vous devez mettre dans votre persistence.xml comme mentionné ci-dessus.