【发布时间】:2013-12-07 13:39:24
【问题描述】:
我从 EJB 访问 MySql 数据库时遇到问题。将我的 EAR 部署到 Glassfish 服务器并调用使用实体类的方法后,我收到如下异常:
java.lang.NoClassDefFoundError: com/mysql/jdbc/ResultSetMetaData
我正在使用本地 MySql 数据库,与这些数据库的连接仍然有效。为了访问这些 Databese 的表,我使用了 Netbeans 生成的实体类。这些类位于外部库(OthelloLibrie)中。在这里也可以找到我的Session Bean的远程接口。
我不得不将实体类放在外部库中,因为我在连接到我的 EAR 的企业客户端应用程序中使用它们。
我的企业应用程序项目包含主会话 bean 和一些来自实体类的会话 bean,这些实体类使用我在外部库中的实体类。它还包含持久性 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 有问题,而不是整个驱动程序。
你能帮帮我吗?
【问题讨论】:
标签: mysql jakarta-ee jpa netbeans glassfish