Connecter une base de données MySQL à classpath Glassfish n'est pas défini ou classname est erroné

j'échange une base de données derby contre une MySQL. Tout fonctionnait avant, mais après ce que je pensais être la bonne configuration, j'obtiens l'erreur:

Causés par: javax.ressources.ResourceException : le nom de classe est erroné ou classpath n'est pas défini pour: com.mysql.jdbc.jdbc2.facultatif.MysqlDataSource

sortie pleine erreur de 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 vérifié quelques noms, le pool de connexion et d'autres ressources.J'ai également ajouté le pilote MySQL .jarres à la bibliothèque de glassfish dans les deux projets. La base de données fonctionnait sans aucun doute correctement à travers eclipse parce que j'étais capable de visualiser les tables et d'afficher les ressources à l'intérieur du contexte de base de données d'eclipse. Donc je sais qu'au moins ces pilotes fonctionnent correctement. Aussi la persistance.fichier xml semble bon. il renvoie à la référence jdbc/mydatabase jndi comme il se doit et par défaut JTA est sélectionné comme type de manament.

quelqu'un aurait-il une autre suggestion? Je vous remercie

22
demandé sur DataNucleus 2011-12-02 03:43:00

3 réponses

j'ai aussi ajouté le pilote MySQL .jarres à la bibliothèque de glassfish dans les deux projets.

cela n'a apparemment pas été fait correctement. Le POT doit aller dans /glassfish/domains/[domainname]/lib/ext dossier de L'installation Glassfish où [domainname] par défaut à domain1. Vous pouvez et ne devriez pas le configurer du côté de L'éclipse.

35
répondu BalusC 2011-12-01 23:51:17

on dirait que je réponds très tard, mais cependant les gens qui se réfèrent à ce fil peuvent trouver les informations suivantes utiles. Je suis donc de le poster ici:

  1. télécharger le pot de connecteur de http://dev.mysql.com/downloads/connector/j/5.0.html
  2. décompresser le paquet et copier mysql-connector-java-verno-bin.jar
  3. passé la même chose à l' [Répertoire d'Installation de GlassFish]/domaines/[nom de domaine]/lib dossier
  4. redémarrez votre domaine et ping pour vérifier votre connexion dans les Pools de connexion JDBC

voilà. Si votre MySql est en cours d'exécution alors il va ping la DB avec succès

21
répondu Ram 2012-08-02 10:31:13

j'ai copié le fichier jar $glassfish_install_folder\glassfish\lib, après ça ça a marché. J'utilise glassfish 4.0.

Cochez cette lien à partir d'oracle.

5
répondu wei 2016-04-10 16:05:38