ConfigurationException: не удалось найти ресурс cfg.xml [hibernate.cfg.xml] в корневой папке проекта

У меня есть файл hibernate.cfg.xml в корневой папке проекта.

Если я запускаю приложение, содержащее:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

он падает в configure() метод со следующим сообщением:

Не удалось найти ресурс cfg.xml [hibernate.cfg.xml]

Выход:

Jun 17, 2016 12:04:59 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.0.Final}
Jun 17, 2016 12:04:59 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=org.h2.Driver, hibernate.service.allow_crawling=false, hibernate.max_fetch_depth=5, hibernate.dialect=org.hibernate.dialect.H2Dialect, hibernate.format_sql=true, hibernate.generate_statistics=true, hibernate.connection.username=sa, hibernate.connection.url=jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;LOCK_TIMEOUT=10000, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****, hibernate.connection.pool_size=5}
Jun 17, 2016 12:04:59 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
org.hibernate.internal.util.config.ConfigurationException: Could not locate cfg.xml resource [hibernate.cfg.xml]
    at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:53)
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:258)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:244)
    at o.k.j.HibernateTest.main(HibernateTest.java:22)

10 ответов

Решение

Файл hibernate.cfg.xml должен быть перемещен в папку src.

Если вы используете Maven для создания своего проекта, поместите hibernate.cfg.xml файл под src/main/resources

Если вы используете Maven в качестве инструмента для сборки, поместите hibernate.cfg.xml в папке ресурсов.

Шаги, чтобы приложение ссылалось на файл конфигурации Hibernate.

Щелкните правой кнопкой мыши папку ресурсов и выберите параметр " Отметить каталог как" и выберите " Корень ресурсов".

Эти шаги работали для меня в InteliJ IDEA Ultimate 14.

Движущийся hibernate.cfg.xml файл в src/main/resources решил мою проблему

Ниже решения могут работать для Maven, Intellij

  1. переместить «hibernate.cfg.xml» в папку ресурсов -> перестроить проект

  2. щелкните правой кнопкой мыши папку ресурсов -> затем снимите отметку с корня ресурсов -> снова отметьте его корнем ресурсов

Если вы используете IntelliJ IDEA. поместите файл в src/main/resources

Его необходимо добавить в файл конфигурации как тип сохранения.

Настройки проекта > Фасеты > Добавить гибернацию > Путь к конфигурации

И вы можете увидеть, как он настроен в View > Tools Windows > Persistence

GL

Я также столкнулся с аналогичной проблемой, и я заметил, что мой файл конфигурации hibernate "hibernate.cfg.xml" не находится на требуемом пути. Поэтому я переместил hibernate.cfg.xml в папку src, и это решило проблему.

Используйте forward /, чтобы поместить файл cfg без forward / он не будет работать

если вы используете eclipse, то его необходимо добавить в конфигурацию как src\main\java\hibernate.cfg.xml

Другие вопросы по тегам