| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Servlet and EJB |
| Автор: schmidt 29.12.2009, 03:02 | ||
| Доброго времени суток! Есть EJB, в котором есть метод который возвращает сущность типа DataBase. Клас DataBase находиться в самом джарнике EJB. Есть сервлет, который обращается к этому бину, он вызывает метод, чтобы получить базу данных:
Клас 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 |
| да, все верно! Они и подгрузились, я удалил класы из ВАР файла и все нормально стало работать. Спасибо большое! |