Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Деплой EJB на WASCE, v1.1.0.2. Ошибка. Интерфейсы бина отделены от реализации 
V
    Опции темы
Tsahes
Дата 25.11.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 5.12.2006

Репутация: нет
Всего: нет



Добрый день,

Я пробую задеплоить простейшее приложение, ear с одним бином.
Сервер приложений - WASCE, версия 1.1.0.2; бин - Stateless Session Bean, EJB2.1.

Если бин упаковать в один jar, деплой проходит успешно.
В моем же случае Home и Remote интерфейсы бина упакованы в kernel-common.jar, реализация бина - в kernel-core.jar.

Структура ear:
Код

APP-INF
    lib
       kernel-common.jar
META-INF
    application.xml
kernel-core.jar


Если application.xml имеет вид
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>kernel-ear</display-name>
  <module>
    <ejb>kernel-core.jar</ejb>
  </module>
</application>

, получаю ошибку:
Код

Remote interface class not found: ru.home.kernel.common.service.FunnyService
org.apache.geronimo.common.DeploymentException: Remote interface class not found: ru.home.kernel.common.service.FunnyService
    at org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureInterface(ENCConfigBuilder.java:621)
    at org.apache.geronimo.naming.deployment.ENCConfigBuilder.assureEJBObjectInterface(ENCConfigBuilder.java:598)


Вероятно, WASCE не понимает, что искать интерфейсы надо в APP-INF/lib. Хорошо.
Предположим, application.xml имеет вид
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd">
<application>
  <display-name>kernel-ear</display-name>
  <module>
    <java>APP-INF/lib/kernel-common.jar</java>
  </module>
  <module>
    <ejb>kernel-core.jar</ejb>
  </module>
</application>

, получаю ошибку:
Код

Module was not an application client: APP-INF/lib/kernel-common-1.0-SNAPSHOT.jar
org.apache.geronimo.common.DeploymentException: Module was not an application client: APP-INF/lib/kernel-common-1.0-SNAPSHOT.jar
    at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.addModules(EARConfigBuilder.java:761)
    at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getEarPlan(EARConfigBuilder.java:364)

В моем приложении модуля application client точно не будет.

Поиск ничего полезного не дал.
Подскажите, как дать понять WASCE, что необходимые интерфейсы бина лежат в APP-INF/lib?
PM MAIL   Вверх
Asal
Дата 25.11.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 26.12.2006
Где: Минск

Репутация: 4
Всего: 7



Цитата(Tsahes @  25.11.2008,  10:35 Найти цитируемый пост)
Подскажите, как дать понять WASCE, что необходимые интерфейсы бина лежат в APP-INF/lib?

либо папку lib положить там где она должна быть
root-
   App-INF
   META-INF
   lib
   kernel-core.jar
либо указать другой путь в application.xml


--------------------
PM MAIL ICQ   Вверх
Tsahes
Дата 25.11.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 5.12.2006

Репутация: нет
Всего: нет



Цитата(Asal @  25.11.2008,  11:12 Найти цитируемый пост)
либо папку lib положить там где она должна быть

Не помогло. Изменил структуру ear:
Код

lib
   kernel-common.jar
META-INF
    application.xml
kernel-core.jar


Получил исключение:
Код

Remote interface class not found: ru.home.kernel.common.service.FunnyService
org.apache.geronimo.common.DeploymentException: Remote interface class not found: ru.home.kernel.common.service.FunnyService

PM MAIL   Вверх
Tsahes
Дата 25.11.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 5.12.2006

Репутация: нет
Всего: нет



Спасибо всем, решение найдено.
В
Код

kernel-core.jar/META-INF/MANIFEST.MF

добавлено упоминание о классах:
Код

Class-Path: lib/kernel-common.jar



Это сообщение отредактировал(а) Tsahes - 25.11.2008, 13:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1041 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.