![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
En_t_end |
|
||||||||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Здравствуйте,
Мне необходимо создать каркас сложной системы, части которой будут развернуты на разных серверах приложений. Предполагается, что в состав системы войдут:
В свою очередь в некоторых методах этих бинов вызываются методы бинов EJB-модуля подсистемы. Понятно, что все бины должны иметь Remote интерфейсы и все это хозяйство должно работать через RMI. Я попытался отразить поведение этой большой системы в маленьком тестовом проекте суть которого - посчитать сумму двух введенных пользователем чисел в форму веб-приложения. Веб-приложение, в свою очередь, должно трогать EJB-модуль, который трогает другой EJB-модуль. О декстопном приложении пока забудем. У меня есть 2 сервера приложений:
Здесь все просто, форма с 2 полями для ввода. Кнопка "+" вызывает метод Managed Bean'а TestManagedBean addAandB который должен установить сумму тех самых двух полей в поле c. test_webapp index.xhtml:
ManagedBean в методе addAandB которого вызывается метод инжектированного бина (по Remote интерфейсу) TestCore. test_webapp TestManagedBean.java
Core EJB Тот самый бин, который инжектировался в бин веб-приложения. Здесь, в свою очередь, инжектируется бин из test_subsystem. test_core TestCoreBean.java:
Subsystem EJB Конец цепочки. Наконец-то считаем сумму. test_core TestSubsystemBean.java:
Commonlib JAR Далее привожу код всех интерфейсов и общих классов, определенных в библиотеке test_commonlib. test_commonlib TestCoreInterface.java:
test_commonlib TestCoreRemote.java:
test_commonlib TestSubsystemInterface.java:
test_commonlib TestSubsystemRemote.java:
test_commonlib SomeClass.java:
Проблема В pom всех проектов добавил в зависимости test_commonlib. Пытаюсь деплоить test_core, получаю такую вот ошибку:
Извиняюсь, что так много, сокращал как мог. Очень надеюсь на помощь. Спасибо. Добавлено @ 22:21 На всякий случай привожу pom для test_core:
А также pom для test_commonlib:
Это сообщение отредактировал(а) En_t_end - 14.6.2011, 22:36 |
||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Stolzen |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
А вы в понмиках явно родителей и модули не указываете? Не нашел. Я вот так делаю разбивку по проектам в мэйвене:
Главный пом:
Дочерний пом:
И другий дочерний пом с зависимостью от первого модуля:
Нетбинс может генерировать такую разбивку по проектам, если в нем выбрать в качестве нового проекта "Maven Enterprise Application" (хотя немного чистить и править помники все же приходится после генерации). Правда, имхо, работать с maven проектами в NetBeans не так удобно, как в eclipse + m2eclipse. Но я отошел от темы. Далее, судя по описанию ошибки, вы пытаетесь задеплоить jar без Enterprise бинов внутри. Хотя странно, вы же определяете класс как @Stateless. Если посмотреть стэктрейс ошибки, то там пишут
Значит, посмотрите файл server.log (обычно в glassfish/domains/domain1). Что там пишут? |
||||||||
|
|||||||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Ок, это будет работать. Но можно ли в этом случае деплоить части проекта на разные сервера приложений ?
Та ошибка, я её как раз из лога достал ![]() Это сообщение отредактировал(а) En_t_end - 15.6.2011, 05:13 |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Я думаю у меня такая же проблема, как здесь http://www.coderanch.com/t/510651/EJB-JEE/...b-ejb-jar-doesn
Но там она без решения. |
|||
|
||||
dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 4 Всего: 16 |
||||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
||||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
Да, конечно, будет. Только деплоить нужно будет не целиком ear, а отдельные jar-файлы с вашими ejb. И если выбирать в качестве шаблона проект, сгененированный нетбинсом, то в главный помник нужно будет еще добавить модуль со вторым ejb проектом (хотя это и так, я думаю, понятно). Попробуйте переделать и покажите, что получится. Если все будет так же, то лучше бы посмотреть проект целиком - а то самому по кусочкам долго воспроизводить. |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
О, я посмотрел на содержимое test_core.jar. В нем нет test_commonlib. Так что, теперь понятно откуда ноги растут.
Как можно в maven подключить библиотеку к проекту, чтобы она упаковалась вместе с ним ? Это сообщение отредактировал(а) En_t_end - 15.6.2011, 07:26 |
|||
|
||||
Stolzen |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
Добавить maven-dependency-plugin
И запускать mvn package - все будет копироваться в lib Это сообщение отредактировал(а) Stolzen - 15.6.2011, 07:48 |
||||
|
|||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
Вот тут http://maven.apache.org/plugins/maven-depe...ugin/usage.html можно глянуть подробнее
|
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Stolzen,
Спасибо, получилось упаковать jar в ejb-модуль, он даже добавился в ClassPath. Но оказалось, что начиная с GlassFish v3, в целях безопасности, jar'ы внутри ejb-модулей игнорируются. Подтверждение не могу предоставить, потерял ссылку. Как решение, ваш вариант с ear действительно работает. |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
En_t_end,
Пожалуйста. Ну а самая главная проблема-то побеждена? |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Если я правильно понял, то проблема в том, что проект один, "Распределенный проект". Любое изменение влечет за собой перекомпиляцию всего. Стандартной альтернативой является SOA или система, в которой независимые компоненты обмениваются сообщениями. В этом случае система остается распределенной. В систему входит много приложений. Каждому приложению соответствует один проект. Проекты не связаны между собой. Правильно ли я понял? Хотелось бы за деревьями лес увидеть.
Это сообщение отредактировал(а) COVD - 18.6.2011, 04:14 |
|||
|
||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 6 Всего: 14 |
Кстати glassfish 3 позволяет работать по старому, когда jar видны.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |