![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
4epT |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Добрый вечер! Пытаюсь соединить эти три фреймверка =) Расскажу по порядку:
1) Сделал для всех таблиц в БД, отображение на сущности (Entity) 2) Написал Dao классы ... Dao написаны таким образом что есть один базовый Dao:
От этого класса унаследовано все остальные Dao. 3) Сделал класс userManager, который пока что просто дублирует методы userDao. 4) В настройках спринга все описал ... но поле userDao в классе userManager не инициализируется, и при вызове методы валится NullPointerException. Вот настройка настройка бинов:
А вот класс userManager:
Подскажите пожалуйста где я ошибся ? Если что то не привел, скажите, допишу ... вроде все упомянул. Заранее спасибо! |
||||||
|
|||||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
И еще хотел спросить, стоит ли связывать эти три вещи ? До этого начинал писать без спринга, но приходилось самому следить за транзакциями и использовать самописный HibernateUtil
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Если без спринга то нужен java ee сервер, простым контейнером тут не обойтись наверное.
Спринг знает, что нужно что-то делать? Прописан он в web.xml или где там еще нужно? Попробуйте имя поля такое же как в bean id. Со спрингом особо не знаком, догадки. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
А можно насчет этого поподробнее ?) В web.xml спринг не прописан ( Пытался прописать там listener, но проект после этого не собирается ... |
|||
|
||||
emmanuil |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Причина? Не просто так же. Чего-то не хватает значит. Если не пропишите, то он сам не догадается. ;)
Начните пожалуй с этого. Это с грэйлса, но в жсф где-то тоже такое видел. А что тут подробнее... Обычный java ee стек. JPA, ejb там всякие, транзакции. В jsf 2.0 думаю можно обойтись без спринга. Но смотря что нужно. JSF это отображение в EE. Сейчас java ee стал проще, навешал аннотаций и работай себе. Добавлено через 10 минут и 10 секунд Вот еще:
Добавлено через 11 минут и 23 секунды для примера - http://code.google.com/p/mesir/source/brow...ebapp%2FWEB-INF |
||||||
|
|||||||
4epT |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Когда в web.xml прописываешь:
проект перестает собираться ... в консоли видно вот такое:
p.s. у меня работало без спринга, но у меня у проекта была такая архитектура что из jsf бина (ManagedBean) дергался метод какого либо менеджера (в данном примере UserManager). Все менеджеры создавались jsf бине, с областью жизни сессия ... что не очень красиво (менеджеров ожидается порядка 40 штук ... в сессия будет очень много хлама). Это сообщение отредактировал(а) 4epT - 13.4.2011, 23:30 |
||||
|
|||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Больше похоже на попытку запуска. В логах сервера смотри доп. инфу.
А спринг тут чем поможет? Измени видимость. Есть даже conversation. Определись, какие действия нужны с менеджерами. Тот выполняет только логин, его в request. Добавлено через 2 минуты и 15 секунд Есть CDI бины. weld подключи и юзай DI. @Injected нравится? ![]() Тогда бины нужно Named помечать. |
|||
|
||||
4epT |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
В логах томкэта видно вот такое:
и такое:
|
||||
|
|||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
В общем я разобрался ) вкратце опишу как все сделал, может кому то пригодится.
faces-config в итоге у меня пустой. В applicationContext (контекст спринга), описываю все spring bean, dataSource (Sessionfactory), transactionManager и настройки хибера. В web.xml прописываю путь к applicationContext, и вешая два листенера:
помимо этого еще нужно повесить RequestLoaderListener (пишу по памяти, но вроде похоже ...), этот листенер нужен для работы с jsf. Ну и в applicationContext, я не прописываю jsf manadeg beans, я просто из управлямых бинов (managed bean), достаю бины спринга и с ними работаю ) |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Привет.
Вообще по своему опыту могу сказать такое: JSF-бины, в принципе, и не нужны. Достаточно все описать в Spring и использовать их напрямую. Для это в faces-config.xml добавить такое:
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Использовать их напрямую откуда ? Я например хочу использовать jsf контролы наподобие рич или прайм фейсес ...
|
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
JSF-контролы - это не Managed-бины. Это визуальные компоненты. Такие себе HTML-темплейты с некоторым JavaScript кодом.
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
то есть в атрибут action можно повесить метод/поле spring bean ? Если да, то чем такая связка лучше чем через managed bean ? =)
|
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Тем, что у тебя всего лишь одно место конфигурации бинов. И только один контейнер - Spring. А еще у тебя все получается в одном стиле - спринговском. Spring со всеми своими фреймворками более мощней, чем JSF сам по себе. И вполне возможно, что решая задачи на JSF ты однажды придешь, к тому, что у Spring уже есть готовое решение. Ты его подключаешь к своему проекту - и начинает разрастаться у тебя конфигурация как JSF, так и Spring. Как по мне так лучше все в одном месте иметь. Но это сугубо мое личное мнение. Просто однажды начав проект JSF+Spring я всю конфигурацию вынес в Spring и был доволен. -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
А тогда такой вопрос =) Если я отказываюсь от JSF, то логично использовать Controller из Spring MVC ... да ? а как будет обстоять дело с шаблонами ? К примеру в JSF это facelets. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |