У меня проблема, когда я получаю свою базу данных MySql от EJB. После развертывания EAR мой к Glassfish сервера и вызова метода, которые используют класс сущностей я получаю исключение, как это:Java EE и JPA под Glassfish, NoClassDefFound com/mysql/jdbc/ResultSetMetaData
java.lang.NoClassDefFoundError: ком/MySQL/JDBC/ResultSetMetaData
Я используя локальную базу данных MySql, соединение с ними все еще работает. Для доступа к таблицам этих Databese я использую классы сущностей, созданные Netbeans. Эти классы находятся во внешней библиотеке (OthelloLibrarie). Здесь вы также можете найти удаленный интерфейс моего Session Bean.
Мне пришлось помещать классы сущностей во внешнюю библиотеку, потому что я использую их в приложении Enterprise Client, которое связано с моим EAR.
В моем проекте прикладного приложения содержится основной компонент сеанса и некоторые из них Session-компоненты из классов сущностей, которые используют классы сущностей во внешней библиотеке. Он также содержит персистенции 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 - это классы Entity, используемые с созданными фасадами.
Я искал еще в Интернете, но я так и не нашел такую ошибку. Похоже, что только пакет или класс ResultSetMetaData из JDBC имеет проблему, а не весь драйвер.
Вы можете мне помочь?
Я включил его еще, в настоящее время он включен только в EJB, но я попытался включить его во все мои проекты, но эффект whitout. Затем я переместил .jar прямо в папку домена Glassfish. Я сделал ping с моего сервера Glassfish в базу данных, и он все еще работает. Так что это очень странно. –
Подходящее решение может быть добавлено в папку 'lib/ext' в папке домена Glassfish или лучше в папку' jre/lib/ext' в установочной папке JDK; последний всегда является частью пути Java classpath, добавленные к нему банки могут быть видны из каждого приложения Java. – remigio
И мне нужно удалить драйвер из моего проекта, когда я это сделаю? Потому что теперь у меня есть NullPointerExceptions в JPA. –