我不知道如何将休眠配置文件传递给JAR程序。 当我运行JAR时出现错误:
org.hibernate.internal.util.config.ConfigurationException:无法 找到cfg.xml资源[hibernate.cfg.xml]
我试图将文件放在JAR的同一目录中,或放在项目中的子文件夹资源中。
更新: 这是我尝试使用的方式
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure()
.build(); //exception throw here
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
hibernate.cfg.xml文件放置在资源文件夹中。从单元测试加载后可以正常工作。
答案 0 :(得分:0)
问题是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;
}