当我从EJB访问我的MySql数据库时,我遇到了一个问题。在将EAR部署到Glassfish服务器并调用使用实体类的方法之后,我将得到如下异常:
java.lang.NoClassDefFoundError: com/mysql/jdbc/ResultSetMetaData
我使用的是本地MySql数据库,到这些数据库的连接仍然有效。为了访问这些Databese的表,我使用Netbeans生成的实体类。这个类位于外部库(OthelloLibrarie)中。在这里,您还可以找到我的会话Bean的远程接口。
我必须将实体类放在外部库中,因为我在连接到EAR的中使用它们。
包含来自实体类的主会话bean和一些会话bean,它们使用外部库中的My实体类。它还包含持久性XML,还包括我的JDBC驱动程序:
当我从客户端应用程序调用方法createPartie时,会出现错误:
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和Player是与生成的外观一起使用的实体类。
我还在网上搜索过,但是我从来没有发现过这样的错误。似乎只有来自JDBC的包或类ResultSetMetaData有问题,而不是整个驱动程序。
你能帮帮我吗?
发布于 2013-12-07 15:42:26
您需要在项目中包括提供mysql-connector-java.jar JDBC驱动程序类的MySql文件。在使用Netbeans时,只需将其添加为库jar即可。您可以在此链接上找到它,以及下载和安装说明。
https://stackoverflow.com/questions/20442002
复制相似问题