JAR如何加载hibernate.cfg.xml外部文件?

时间:2018-08-23 22:34:17

标签: java hibernate

我不知道如何将休眠配置文件传递给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文件放置在资源文件夹中。从单元测试加载后可以正常工作。

1 个答案:

答案 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;
}