![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Уважаемые, вопрос из серии "нельзя, но очень хочется"...
Есть фасады бинов в пользовательском приложении, с ними выполняются однотипные операции... естественно, хочеться это дело обернуть в отдельную примочку, дабы не писать 10 раз одно и тоже... Привел все фасады к одному интерфейсу и передаю их в функцию класса библиотеки подключенной... однако, с другой стороны, после передачи параметра - данный фасад становиться null... Я,конечно, понимаю, что дело в том, что экземпляры объектов сидят на сервере, а со стороны клиентов - всего лишь фасады-интерфейсы... но все-таки нет ли какого хитрого метода, чтобы можно было ссылку на фасад запихать в метод класса из библиотеки в качестве параметра?? Это сообщение отредактировал(а) Maverick - 16.5.2007, 15:23 |
|||
|
||||
| chief39 |
|
||||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
Не понял. Что десять раз одно и то же? И в какую примочку запихнуть?
К какому интерфейсу? У тебя все фасады выполняют одно и то же?
Гм... как это? когда у тебя слукаплен и приведён бин - это означает что локально у тебя создана заглушка, которая наследует ремоут-интерфейс, с которым ты и работаешь. Это просто объект в памяти - почему он у тебя обнуляется? Как ты его передаёшь и куда? на клиенте - заглушка, наследующая интерфейс, при работе с ней - конкретный инстанс такой заглушки, тупо объект. У меня есть метод на клиенте protected CustomersFacade initFacade() к примеру. Он работает а-ля как сервис локатор. То есть слукапил фасад и вернул на него ссылку(а вернее - на его проксю). Которую так же можно передать параметром(параметры в джаве - по ссылке). Может ты как-то хитро передаёшь куда-то? Случаем, ничего у тебя не сериализуется ? ;) -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
||||
|
|||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: 12 Всего: 19 |
Maverick, действительно, как-то витеивато )))
попробуй подробнее описать |
|||
|
||||
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Ну вот смотрите...
Есть бины - скажем страны и города... Есть однотипные операции к ним - добавить, удалить, изменить... и тд, и тп... Доступ осуществляется через JSF.... Например, при нажатии на кнопку "Добавить" приходилось писать практически один и тот же код для разных классов... Причем добавляется все в определенные массивы, типа кэш этакий самопальный, а потом все загоняется через фасад в настоящие таблицы... Вместо это я в библиотеке создал класс Помощник, который умеет принимать эти самые данные и оперировать ими (растыкивать по кэшам и все такое)... Это класс Помощник оперирует интерфейсами, а не настоящими классами, поэтому все классы приведены к этому интерфейсу... Ну так вот - когда я попытался этому классу помощнику переслать собственно фасад - выяснилось, что с после присвоения - это null... фасад не передается... им нельзя оперировать в классе Помощнике... Вот в чем проблема... |
|||
|
||||
| chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 11 Всего: 77 |
Где у тебя помощник, где фасад, опиши точнее. Брррр.... жуткая а-ля унифицированная логика, вынесенная на клиента. Зачем тебе тогда плодить фасады? Сделай один, который будет работать со всем и просто давай ему понять - get чего именно тебе сейчас нужен - страны или города. А то фасады утебя ограниченны одним бизнес-интерфейсом и зачем такое - непонятно. Тем более, Session Facade подразумевает скрытие сложностей от клиента. А тут клиент только нагружается "левой" логикой. А кешу обычно пофик что складывать - Object себе, да и Object. Это я вообще о системе... А ответ на вопрос трудно найти, зная лишь -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
Maverick, ты бы упрощённый пример сделал и выложил бы код.
P.S. Создание упрощённого примера зачастую позволяет увидеть свои ошибки и исправить всё самостоятельно. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
я, честно говоря, не уверен, что в будущем эти бины не разъедутся по разным приложениям... кром того - приложений много, библиотека одна... подключай к любому и работай.... Попытаюсь чуть позже выложить пример упрощенный... |
|||
|
||||
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Короче, все нормализовалось.... ошибка была в том, что я передавал классу помощнику фасад не в том месте... Я использую JSF и надо было в событии init() бина это делать.. там фасад уже существует... а до этого - он все-таки null...
|
|||
|
||||
![]()
|
| Правила форума "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. |