我不知道如何将hibernate配置文件传递给JAR程序。 运行 JAR 时出现以下错误:
org.hibernate.internal.util.config.ConfigurationException:无法 找到 cfg.xml 资源 [hibernate.cfg.xml]
我尝试将文件放在 JAR 的同一目录中,或者放在项目的子文件夹 resources 中。
更新: 这是我尝试使用的方法:
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure()
.build(); //exception throw here
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
hibernate.cfg.xml
文件放置在资源文件夹内。从单元测试加载时可以正常工作。
问题在于 StandardServiceRegistry 尝试从资源加载 hibernate.cfg.xml,而资源未嵌入到 JAR 中。
我将配置文件移动到子文件夹“config”并使用 File 类加载它,如下所示:
File config = new File("./config/hibernate.cfg.xml");
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure(config)
.build();
try
{
sessionFactory = new MetadataSources(registry)
.buildMetadata().buildSessionFactory();
}
catch (Exception e) {
e.printStackTrace();
StandardServiceRegistryBuilder.destroy( registry );
throw e;
}