| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > hibernate.cfg.xml в папку conf томката |
| Автор: Samotnik 4.10.2010, 19:19 | ||
| привет. Хочу, чтобы hibernate.cfg.xml загружался по пути /conf/Catalina/localhost/hibernate.cfg.xml Как это можно сделать ? Знаю вариант в классе HibernateUtil указать прямой путь, что-то вроде
Но это не подходит, нужно решение, чтобы без хардкода. |
| Автор: Egik2 4.10.2010, 22:25 | ||||
Если тебе нужно просто составить относительный путь от корня tomcata, то его корневую директорию можешь получить из переменных окружения:
И отсюда например плясать:
|
| Автор: Samotnik 5.10.2010, 11:22 |
| не очень изящное решение. Может еще есть варианты ? |
| Автор: Samotnik 5.10.2010, 12:07 | ||||
Вобщем сделал вот так
Приложение работает. Но, не понятно почему примерно каждые 10 сек, пишутся логи в консоль томката
|
| Автор: kkorsakoff 5.10.2010, 12:21 |
| В этой папке томкет ожидает увидеть дескрипторы контекстов веб-приложений, а не конфиги hibernate:) Оттуда и ошибки. |
| Автор: Egik2 5.10.2010, 12:41 | ||
| Установи в server.xml для Hosta соотвествующего deployXML = false Пример:
|
| Автор: Egik2 5.10.2010, 13:19 |
| По идее если у тебя файл лежит в класспасе то он должен сам найтись То есть просто пишешь hibernate.cfg.xml |
| Автор: Samotnik 5.10.2010, 13:32 | ||||
Egik2,
|
| Автор: Skipy 5.10.2010, 13:32 | ||
В WEB-INF/classes. Ему там самое место. |
| Автор: Samotnik 5.10.2010, 13:36 |
Самый умный ? Если бы можно было, то я бы эту тему не создавал |
| Автор: Egik2 5.10.2010, 13:44 |
| А эта папка в classpath входит? |
| Автор: Samotnik 5.10.2010, 13:48 |
| Вообще, вроде как проблема тривиальна, почему нету решения такого же ? Вот смотрите. Вы написали веб приложение. К нему у вас есть hibernate конфиг файл и какой то проперти файл для самого приложения. И отдаете вы это приложение сотни заказчикам. Но ведь наверняка эти два файла будут у всех различаться. Поэтому логично положить эти два файла не в веб приложение (чтобы при каждом деплое в webapps не перезаписывать эти конфиги), а куда - то отдельно в одно место самого томката, а в приложении считывать от туда. Добавлено через 7 минут и 32 секунды Egik2, что в classpath положить нужно ? c:\tomcat\shared\classes\name\hibernate.cfg.xml ето ? |
| Автор: Samotnik 5.10.2010, 14:13 | ||
| так что. Останавливаться на этом варианте ? Больше идей нету ?
? |
| Автор: Egik2 5.10.2010, 14:22 | ||||
| Пропиши путь к твоей директории где лежит конфиг в classpath. Логично это сделать в файле $catalina_home/bin/setclasspath.bat Там есть строка вида:
Добавь свой путь: set CLASSPATH=%JAVA_HOME%\lib\tools.jar;c:\tomcat\shared\classes\name\ Теперь при запуске tomcata будет класспас показывать в твою папку и получить доступ к нему можно так:
Больше путей нигде не надо указывать. |
| Автор: Samotnik 6.10.2010, 12:31 | ||
Сделал, работает. Вот такой вот HibernateUtil получился
Теперь внимание вопрос. А правильно ли ложить hibernate.cfg.xml в папку shared/classes томката ? |
| Автор: Egik2 6.10.2010, 12:59 | ||
Правильней всего ложить его в WEB-INF/classes Но раз так не получается, то о каком-либо "стандартном" месте для таких настроек я по крайней мере не слышал. Ложи куда хочешь. |