Java EE and JPA under Glassfish, NoClassDefFound com/mysql/jdbc/ResultSetMetaData

末鹿安然 提交于 2019-12-25 10:50:16

问题


I have a problem when I acces my MySql Database from an EJB. After deploying my EAR to the Glassfish server, and calling the method that use the entity class I get an exception like this:

java.lang.NoClassDefFoundError: com/mysql/jdbc/ResultSetMetaData

I am using a local MySql Database, the connection to these still works. To acces the tables of these Databese I am using entity classes generated by Netbeans. This classes are situated in external Library (OthelloLibrarie). Here you can also find the remote interface of my Session Bean.

I had to put the entity classes in an external library because I'm using them in an Enterprise Client Application which is connected to my EAR.

My Enterprise Application Project contains the main Session bean and somes Session beans from entity classes which uses my entity classes in the external Library. It also contains the persistence XML and it includes my JDBC driver:

The error appears when I call the method createPartie from the Client Application:

Partie p = eJBOthelloGame.createPartie(jTextFieldPseudo.getText());

SessionBeanOthelloRemote.java:

@Stateless
public class SessionBeanOthello implements SessionBeanOthelloRemote {
   @EJB
   private PlayerFacadeLocal playerFacade;
   @EJB
   private PartieFacadeLocal partieFacade;

   @Override
   public Partie createPartie(String player) {
    //Ajout du tuple
    Partie p = new Partie();

    Player p1 = new Player();
    p1.setId(1);
    p1.setNom(player);
    playerFacade.create(p1);

    p.setPlayer1(p1);
    partieFacade.create(p);

    return p;   
}

Partie and Player are Entity classes used with generated facades.

I searched yet on the web but I never found this kind of error. It seems that only the package or class ResultSetMetaData from JDBC has a problem and not the entire driver.

Can you help me?


回答1:


You need to include in your project the mysql-connector-java.jar file that provides the MySql JDBC driver classes. As you are using Netbeans, just add it as a library jar. You can find it, along with download and installation instructions, at this link.



来源:https://stackoverflow.com/questions/20442002/java-ee-and-jpa-under-glassfish-noclassdeffound-com-mysql-jdbc-resultsetmetadat

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!