![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Saboteur |
|
||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.8.2007 Где: Минск Репутация: нет Всего: нет |
Начал изучение Хибернейт.
Делаю простейший пример. Используя пул соединений, пытаюсь провести простейшую транзакцию. Получаю , что не находится датасорс:
Вся проблема ,я считаю, в том ,что я не знаю как мне его правильно описать в конфигах. Использую Eclipse+ tomcat + MySql. Шаг первый: добавляю обьявление ресурса в server.xml:
ШАг второй: Настраиваю Хибернейт для использования пула соединений.
Шаг третий : Создаю класс, замэпливаю его. Тут пример кода не нужен т.к. всё кристально ясно. Пишу утилитный класс для создания экземляра сессии:
И собственно класс который Это всё пытается использовать:
Ну и собственно на консоль падает следующее:
Всё это описано в пособии которое вроде бы ранее находилось на hibernate.ru, но по данной ссылке сейчас ничего нет. :( Как правильно настроить пул? И datasourse? |
||||||||||||
|
|||||||||||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: нет Всего: 9 |
DataSource прописывал не в server.xml, а в файле context.xml, который лежит в папке META-INF моего проекта.
Кстати есть пример в "отделе кадров" от AntonSaburov - http://antonsaburov.narod.ru/students/part9.html Там правда не Hibernate, но принцип тот же - разве что JNDI прописывается не в коде, а конфигураторе Hibernate. И похоже там ошибочка у AntonSaburov - надо будет ему написать - пусть исправит. Это сообщение отредактировал(а) ecologist - 5.12.2007, 08:46 |
|||
|
||||
| ivg |
|
||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 4 Всего: 81 |
Попробуйте в описании JNDI ресурса
а в конфиге Hibernate:
java:/comp/env/ - это по видимому специфично для Tomcat Почитать можно здесь И ещё: В файле web.xml ссылка на ресурс прописана? |
||||
|
|||||
| Saboteur |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 16.8.2007 Где: Минск Репутация: нет Всего: нет |
Поменял файл web.xml , добавил ссылку на ресурс
Создал Context.xml и положил его в ту же папку гдк лежит у меня web.xml .
2ivg сделал как ты и показал. 2ecologist Какая ошибка? З.Ы, Так мне server.xml вообще не трогать? З.З.Ы покажите ваши server.xml , Context.xml, web.xml and hibernate.cfg.xml |
||||
|
|||||
| ivg |
|
||||||||||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 4 Всего: 81 |
Я в первый раз просмотрел, но в первом посте у вас файл server.xml по моему не корректный. Тег <context>...</context>(т. е. то что у вас между комментариями <!-- Начало --> и <!-- Конец вставки-->) должен располагаться внутри <host>...</host>. Внутри тега <GlobalNamingResources>...</GlobalNamingResources> располагаются описания глобальных ресурсов, т. е. ресурсов которые доступны всем приложениям на этом сервере. Плюс само содержимое <Resource>...</Resource> так по моему описывалось для старых версий Tomcat. Вообще по той ссылке, что я привел всё достаточно доступно расписано.
Итак 3 варианта: 1. Глобальный ресурс: server.xml
2. Ресурс приложения, определён в server.xml:
3. Ресурс приложения, определен в файле context.xml:
Ничего не могу сказать по поводу атрибута factory, у меня его нет нигде, работает без него.
файл context.xml у меня находится в папке META-INF, она в свою очередь в корне приложения (т. е. на одном уровне с WEB-INF) Для всех трёх вариантов содержимое web.xml одинаково (вы его уже указали), по крайней мере там, где ссылка на ресурс:
Содержимое ссылки <res-ref-name>...</res-ref-name> должно совпадать с именем ресурса, определённого по одному из трёх указанных методов, в данном случае jdbc/quickstart Не знаю как точно в Hibernate должно определяться JNDI имя DataSource, но предполагаю, что Hibernate не должен знать ничего о том окружении в котором он работает (имеется ввиду сервер приложения), поэтому скорей всего, JNDI имя DataSource в файле конфига Hibernate должно быть специфичным для конкретного контейнера то бишь для Tomcat файл Hibernate.cfg.xml выглядит примерно так:
Исправил java:/quickstart на java:/comp/env/jdbc/quickstart Ну вот вроде бы и всё, разбирайтесь, пробуйте. Прошу поправить, если где ошибся. |
||||||||||||
|
|||||||||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |