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

问题描述 投票:0回答:1

我不知道如何将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
文件放置在资源文件夹内。从单元测试加载时可以正常工作。

java hibernate
1个回答
1
投票

问题在于 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;
}
© www.soinside.com 2019 - 2024. All rights reserved.