GlassFish 4.1 dans sa version serveur peut nécessiter l’installation d’un connecteur MySQL pour se connecter à la base de données.
Explication de l’erreur
Lors du déploiement de votre application, vous devriez (si vous n’avez aucun connecteur de base de données) vous heurter à l’exception suivante :
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Invalid resource : jdbc/connection__pm
Cela signifie que vous devez avoir deux choses.
- Un pool de connexion JDBC et une resource JDBC
- Votre connecteur MySQL
Créer les resources JDBC
Depuis l’administration de Glassfish (http://localhost:4848), rendez-vous dans : Resources > JDBC.
JDBC connection pool
Resource JDBC
Connecteur MySQL
Si vous avez installé Glassfish dans sa version basique, vous n’avez peut-être pas de connecteur MySQL intégré.
Rendez-vous sur la page dédiée au connecteurs MySQL sur Oracle, et téléchargez le connecteur (vous devez avoir un compte, créez-en un au besoin).
Ou alors utilisez le lien direct :
Télécharger le connecteur MySQL pour Java
Error occurred during deployment: Exception while preparing the app : Exception [EclipseLink-4002] (Eclipse Persistence Services – 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException:
Error in allocating a connection.
Cause: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource Error Code: 0.
Please see server.log for more details.
Le connecteur doit être placé dans le dossier dans le dossier suivant (après avoir été dézippé, déplacez uniquement le .jar)
/usr/local/glassfish/glassfish/domains/domain1/lib/ext/
Voici le script que j’ai utilisé sur mon serveur Debian.
# téléchargement du connecteur officiel MySQL pour Java
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.41.zip
# on dézippe l'archive contenant le connecteur MySQL pour Java
unzip mysql-connector-java-5.1.41.zip
# on déplace le connecteur MySQL sur Glassfish
cp -v mysql-connector-java-5.1.41/mysql-connector-java-5.1.41-bin.jar /usr/local/glassfish4/glassfish/domains/domain1/lib/ext/
Et redémarrer Glassfish pour la prise en charge du connecteur.
bash /usr/local/glassfish/bin/asadmin restart-domain