在哪里放置hibernate。cfg。xml?
-
12-12-2019 - |
题
我的项目是这样的:
/src/main/java
-thegamers
-app.java
-hibernateutil.java
有人可以告诉我在哪里放冬眠。cfg。xml?
因为我得到这个错误:
Initial SessionFactory creation failed.org.hibernate.HibernateException: hibernate.cfg.xml not found
Exception in thread "main" java.lang.ExceptionInInitializerError
at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)
at thegamers.HibernateUtil.<clinit>(HibernateUtil.java:8)
at thegamers.App.main(App.java:15)
Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2149)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2130)
at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
... 2 more
解决方案
配置文件 hibernate.cfg.xml
需要在 classpath
.
这可以通过不同的方式完成,具体取决于您的项目。
对于一个 web应用战争 项目(您正在Servlet容器中运行程序):把它放在
WEB-INF/classes
将作为文件在WEB-INF/classes
当应用程序在容器中运行时,在类路径上可见。对于一个 Maven-样式项目(不在Servlet容器中运行程序):把它放在
/src/main/resources/
将工作否则,请尝试
src/
目录。
其他提示
我正在使用maven,直到我把hibernate.cfg.xml放在src/main/resources
中,它不起作用。
在项目的根部: /src
(默认情况下)
如何知道是否 /src
消息来源是dir吗?
当您创建一个新的Java类时,它包含在一个包中(通常它被称为创建它的dir的同名)。所以,在你的类声明中,你可以看到这样的东西:
package foo;
class MyClass{
在默认IDE设置中,该类应在以下位置找到 /src/foo/MyClass.java
.正如你所看到的,在这种情况下 /src
作为根源dir。
如果它不是Web项目,那么明确地就像那个一样
new Configuration().configure( "pth/to/hibernate.cfg.xml").buildsessionfactory()
.
希望这可能有助于
@sib指向链接(MKYONG的网站)。它在那里得到了解释。
该文件应该进入您的根目录。 /src
署长,而 /src
未部署,其中的所有内容都构建/复制到 WEB-INF/classes
其被部署。Hibernate需要 cfg.xml
文件在 classpath
在要加载其配置设置的项目中, WEB-INF
dir不在你的 classpath
, 所以如果你把它放在那里,你就会 隐藏 它来自Hibernate,它不起作用。
这 线程 会告诉你如何加载休眠。cfg。来自任何不同路径的xml。
如果您使用的是Eclipse,请转到Project - > Properties - > Java Build Path - > Source。您可以添加放置文件的新文件夹,或将文件移动到现有文件夹。
cmd + n / ctr + n在eClips上时,它将在其中打开一个对话框,您必须在hibernate文件夹上单击达贝布尔。 它将打开具有XML延长的文件列表。 选择CFG.xml,然后单击继续,完成后!点击完成。Eclips现在将使用CFG.xml文件添加类名并将其显示在SRC文件夹下。gb
地点 hibernate.cfg.xml
下 src/
文件夹或明确提及代码中的路径为:
new Configuration.configure("path of hibernate.cfg.xml").buildsessionfactory()
尝试将其放入“src/main/resources
”目录中。