Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Servlet and EJB


Автор: schmidt 29.12.2009, 03:02
Доброго времени суток!

Есть EJB, в котором есть метод который возвращает сущность типа DataBase. Клас DataBase находиться в самом джарнике EJB.
Есть сервлет, который обращается к этому бину, он вызывает метод, чтобы получить базу данных:
Код

   DataBase dataBase = persistencyEJB.loadDBFromFile(dataBaseName);

Клас DataBase, который используется в сервлете лежит в ВАР файле, как положено в соответствующем ему месте. 
Оба класа DataBase(который в EJB и который в WAR'нике) компиляться конечено же с одного и того исходника.
Но вот почему то данная строчка кода возбуждает ексепшин :

  java.lang.ClassCastException: org.rmdb.model.DataBase cannot be cast to org.rmdb.model.DataBase
    $Proxy274.loadDBFromFile(Unknown Source)
    org.rmdb.web.GetDataBasesServlet.service(GetDataBasesServlet.java:41)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Где зарыта собака ? Ломаю мозг уже довольно долго...
Пробовал даже засовывать у ВАР файл именно тот DataBase.class который вытянул из EJB - все-равно я не помогло. 

Надеюсь на помощь экспертов

Автор: Joss 29.12.2009, 09:48
В war не нужна копия класса из ejb-jar.

Автор: schmidt 29.12.2009, 12:41
Хорошо, тогда ВАР должен искать DataBase в jar'нике EJB ? Или ты предлагаешь сделать интерфейс DataBaseInterface и пользоваться им в ВАР нике ?
Я просто не понимаю откуда тогда должен подгружать ВАР клас DataBase, он же ему нужен, он не может пользоваться полученным объектом как обычным объектом, ему надо преобразовать его в DataBase, чтобы пользоваться методами получения данных

Автор: Joss 29.12.2009, 16:19
Я так понимаю, war и ejb-jar входят в одно enterprise-приложение. Тогда классы из jar будут без проблем загружены.

Автор: schmidt 29.12.2009, 16:34
да, все верно! Они и подгрузились, я удалил класы из ВАР файла и все нормально стало работать. Спасибо большое!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)