Конфигурация аннотации hibernate не находит мой xml файл - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть некоторый унаследованный код, который использует Hibernate. Я получаю следующую ошибку:

Caused by: org.hibernate.HibernateException: C:\dev\wk\rs.110-AQU-120.cca.cca-ui\main\config\hibernate\DEV\master.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1402)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1424)
    at com.cca.persistence.HibernateUtil$Parameters.<init>(HibernateUtil.java:96)
    at com.cca.persistence.HibernateUtil.<clinit>(HibernateUtil.java:137)
    ... 4 more

Это происходит при вызове AnnotationConfiguration () # configure (String configurationFile);
Но файл существует. Почему hibernate не сможет найти его?

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Если вы хотите, чтобы файл конфигурации находился в произвольном месте, вы можете привести AnnotationConfiguration к Configuration и предоставить File в качестве аргумента, например:

((Configuration) cfg).configure(new File(System.getProperty("user.dir") + "/config/hibernate.cfg.xml"));
1 голос
/ 04 апреля 2011

Путь к вашему ресурсу не должен быть абсолютным (C:\dev\wk\rs.110-AQU-120.cca...), это должен быть относительный путь в вашем приложении, например, имя пакета!

Причина в том, что org.hibernate.util.ConfigHelper.getResourceAsStream loadResorce by ClassLoader.getResourceAsStream(<resourceName>).

Для получения более подробной информации смотрите ClassLoader.getResourceAsStream и ClassLoader.getResource .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...