2013-12-07 1 views
0

У меня проблема, когда я получаю свою базу данных 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 имеет проблему, а не весь драйвер.

Вы можете мне помочь?

ответ

0

Вам необходимо включить в свой проект файл mysql-connector-java.jar, который предоставляет классы драйвера MySql JDBC. Когда вы используете Netbeans, просто добавьте его в качестве библиотеки. Вы можете найти его, а также инструкции по загрузке и установке, по адресу this link.

+0

Я включил его еще, в настоящее время он включен только в EJB, но я попытался включить его во все мои проекты, но эффект whitout. Затем я переместил .jar прямо в папку домена Glassfish. Я сделал ping с моего сервера Glassfish в базу данных, и он все еще работает. Так что это очень странно. –

+0

Подходящее решение может быть добавлено в папку 'lib/ext' в папке домена Glassfish или лучше в папку' jre/lib/ext' в установочной папке JDK; последний всегда является частью пути Java classpath, добавленные к нему банки могут быть видны из каждого приложения Java. – remigio

+0

И мне нужно удалить драйвер из моего проекта, когда я это сделаю? Потому что теперь у меня есть NullPointerExceptions в JPA. –

Смежные вопросы