J'échange une base de données derby contre une base de données MySQL. J'avais tout fonctionné avant, mais après ce que je pensais être la bonne configuration, je reçois l'erreur:
Provoqué par: javax.resource.ResourceException: le nom de classe est incorrect ou le chemin de classe n'est pas défini pour: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
Sortie d'erreur complète depuis la console:
Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
at com.Sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.Java:292)
at com.Sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.Java:114)
at com.Sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.Java:1292)
at com.Sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.Java:148)
at com.Sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.Java:101)
at com.Sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.Java:87)
J'ai revérifié certains des noms, le pool de connexions et d'autres ressources. J'ai également ajouté le pilote MySQL .jars à la bibliothèque de glassfish dans les deux projets. La base de données fonctionnait certainement correctement via Eclipse car j'ai pu afficher les tables et afficher les ressources dans le contexte de base de données d'Eclipse. Je sais donc qu'au moins CES pilotes fonctionnent correctement. Le fichier persistence.xml semble également bon. il fait référence à la référence jndi jdbc/mydatabase comme il se doit et JTA par défaut est sélectionné comme type de manament.
Quelqu'un a-t-il une autre suggestion? Je vous remercie
J'ai également ajouté le pilote MySQL .jars à la bibliothèque de glassfish dans les deux projets.
Cela n'a apparemment pas été bien fait. Le JAR doit aller dans /glassfish/domains/[domainname]/lib/ext
dossier de l'installation Glassfish où [domainname]
par défaut est domain1
. Vous pouvez et ne devez pas le configurer du côté Eclipse.
On dirait que je réponds très tard, mais cependant les personnes qui se réfèrent à ce fil peuvent trouver les informations suivantes utiles. Je le poste donc ici:
Voilà. Si votre MySql est en cours d'exécution, il exécutera une commande ping avec succès sur la base de données
J'ai copié le fichier jar dans $glassfish_install_folder\glassfish\lib
, après cela a fonctionné. J'utilise glassfish 4.0 .
Vérifiez cela lien d'Oracle.
J'ai rencontré ce problème en 2018 et je voudrais noter que si vous utilisez glassfish 4 (le courant est 5), il semble que vous devez utiliser la version Connector/J 5.1.47 pour que cela fonctionne. Si vous utilisez la version actuelle (Connector/J 8.0.13), l'exception mentionnée dans la question d'origine continue à apparaître, peu importe où vous placez le fichier .jar.
Avec Connector/J 5.1.47, cela fonctionne parfaitement.