![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Grishanya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Здравствуйте!
Я относительно недавно начал разбираться с технологией EJB 3.0. В связи с этим есть вопрос: Имеется задача написания приложения EE, которое должно быть расширяемо. Т.е. в идеале необходимо разработаь некий интерфейс, который реализовывали компоненты. Т.е. есть некоторый серверный компонент, который может общаться с другими компонентами через интерфейс, который в нём же и определён. Т.е. все EJB компоненты должны помимо своих Remote и Local интерфейсов реализовать ещё один - некий универсальный интерфейс. Коим образом можно это реализовать? Заранее спасибо! |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Берешь и наследуешь в Remote и Local этот интерфейс
вот тебе пример:
Ну, у меня тут может немного сложновато, так как генерики используются, но собственно зато видно, что наследование в EJB3 такое же, как и везде -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
Grishanya |
|
||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Может я чего-то не догоняю, но у меня вот какой вопрос возник. Допустим я создаю интерфейс SomeInterface и затем наследуюсь от него в Remote и Local интерфейсах другого бина. Далее, чтобы определить наличие таких вот бинов я делаю что-то наподобие: InitialContext context = new InitialContext(); NamingEnumeration<NameClassPair> enumeration = context.list(""); while (enumeration.hasMore()) { String className = enumeration.nextElement().getClassName(); SomeInterface int = (SomeInterface) context.lookup(className); } и вот на строчке, где я делаю Lookup у меня появляется исключение, Class Not found ибо в бине нет Remote класса... Может я что не правильно делаю... Но суть состоит в том, чтобы получать информацию о классах, удалённые интерфейсы которых отсутствуют, а присутствует только предопределённый интерфейс. Может я несколько сумбурно изъясняюсь... Прошу прощения... P.S. Очень бы поспособствовал кусочек кода... ![]() ![]() Это сообщение отредактировал(а) Grishanya - 10.7.2009, 17:01 |
||||
|
|||||
MisterCleric |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Утверждение не верно: lookupв JNDI делается по тому имени, которые ты указал бину использовать или по-умолчанию что-то типа такого:
что за Class Not found в каком месте? И такое: если интерфейс бина наследует какой-то другой интерфейс, то
Собственно не понятно пока даже в чем суть вопроса? Примеры ваших бинов в студию!!! Под какими JNDI-имена они байндятся? Опредлены ли Local Remote на уровне бина. Да и еще такое вспомнил: разные бины могут имплементить один и тот же интерфейс, главное, что бы они были забайндены под разными именами. И с другой стороны: один и тот же интерфейс может быть и Local и Remote -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||||
|
|||||||
Grishanya |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Собственно бины:
импорты я опустил
// Кошечки
// Собаки
// Бин, взаимодействующий с предыдущими бинами через объявленный в начале интерфейс
Это сообщение отредактировал(а) Grishanya - 10.7.2009, 23:29 |
||||||||
|
|||||||||
Grishanya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Всё, проблема решена!
![]() |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Не-е. так не пойдет. Нам тоже хочется знать, что было не так. Поясняй. Мы здесь и собираемся для того, что бы друг друга выручать. Я тебе что-то писал-писал, а оно ли надо было не ясно. А вдруг та проблема, какая у тебя возникла, когда-нибудь вылезет и у меня... -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
Grishanya |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 13.9.2007 Репутация: нет Всего: нет |
Думал, что никому не интересно... Ок. По просьбам трудящихся рассказываю как дело было. В приведённом выше примере необходимо исправить следующее:
// Для бинов, расширяющих функциональность указываем JNDI имя ПЛЮС делаем его имплементацией вышеуказанного интерфейса. Это два
Ну и на последок, в бине, который пользуется расширениями и в котором содержится интерфейс AnimalInterface делаем следующее:
Собственно то, что и требовалось... Надеюсь, это кому-нибудь пигодится... ![]() |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |