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 depersistence-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
Resources/JDBC/JDBC Connection Pools
et créer un nouveau pool de connexionResources/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 votrepersistence.xml
comme mentionné ci-dessus.