【发布时间】:2016-06-14 19:18:19
【问题描述】:
我使用 Eclipse IDE 构建了我的项目,并将我的 hibernate.cfg.xml 文件放在了 resources 文件夹中(下面的屏幕截图):
当我尝试在我的 DAO 类中引用 hibernate.cfg.xml 时,就会出现问题。这是我的代码的 sn-p,我在其中得到了我的 SessionFactory:
DAO getSessionFactory() 示例
private static SessionFactory getSessionFactory() {
String hibernatePropsFilePath = "src/main/resources/hibernate.cfg.xml";
File hibernatePropsFile = new File(hibernatePropsFilePath);
Configuration configuration = new Configuration();
configuration.configure(hibernatePropsFile);
configuration.addAnnotatedClass(MyClass.class);
StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
return configuration.buildSessionFactory(serviceRegistry);
}
如您所见,我仍然指向项目中的“正确”位置,但是当我使用 Postman 进行测试时,出现以下错误:
HTTP 状态 500 - 请求处理失败;嵌套异常是 org.hibernate.internal.util.config.ConfigurationException:指定 cfg.xml 文件 [C:\Users\MYUSERNAME\Desktop\src\main\resources\hibernate.cfg.xml] 确实 不存在
我的问题:为什么它总是在我的桌面中查找我的文件路径,我该如何将其更改为仅在我的项目中查找?我检查并制作了确保我的资源路径存在于我的 Web 部署程序集中(下面的屏幕截图):
【问题讨论】:
-
你试过不指定路径吗?只需使用
Configuration configuration = new Configuration().configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(). applySettings(configuration.getProperties()); SessionFactory factory = configuration.buildSessionFactory(builder.build()); -
@ChetanJadhavCD 这行得通,谢谢!奇怪为什么它现在可以工作(很久以前尝试过)
标签: java eclipse spring hibernate