【问题标题】:Hibernate JUnit can't find hibernate.cfg.xmlHibernate JUnit 找不到 hibernate.cfg.xml
【发布时间】:2014-10-21 20:43:26
【问题描述】:

使用 JUnit 构建会话工厂时脚本出错。我也试过使用:

 return new Configuration().configure("src/test/resources/META-INF/hibernate.cfg.xml").buildSessionFactory();

我一直在移动它,但每次运行它。测试方法找不到hibernate.cfg.xml。

特别是我也在使用 Maven2。

错误:

SessionFactory creation failed.org.hibernate.HibernateException: src/test/resources/META-INF/hibernate.cfg.xml not found

我的项目/工作区名称也是“test”,所以我也尝试了“test/src/test”。没用。

【问题讨论】:

    标签: java eclipse hibernate junit


    【解决方案1】:

    删除“src”并再次尝试运行。

    return new Configuration().configure("/test/resources/META-INF/hibernate.cfg.xml").buildSessionFactory();
    

    【讨论】:

    • 删除 src 只是删除所有内容,没有意义。
    【解决方案2】:

    正确的形式是:

    return new Configuration().configure("/META-INF/hibernate.cfg.xml").buildSessionFactory();
    

    configure(String) 方法查找类路径资源,当您运行测试时,/src/test/resources/ 下的所有内容都在 Maven 的类路径中可用。

    【讨论】:

    • 还是不行。我认为这是因为 JUnit 上下文与 hibernate 正在查找文件的上下文不同。
    • 这很奇怪。我刚刚尝试使用单个单元测试创​​建一个简单的 Maven 项目,在其中调用配置并成功找到 hibernate.cfg.xml 文件。您能否分享更多细节(可能是单元测试代码或您如何运行它)?
    • 另一个对我有用的解决方案是将带有相对于项目根目录的路径的File 实例传递给configure 方法(new File("src/test/resources/META-INF/hibernate.cfg.xml"))。如果它适合你,你能试试吗?
    • 我不确定我做了什么,但我像以前一样将它移到 Meta-inf 中,然后删除了 META-INF 中的第一个“/”并开始工作。
    猜你喜欢
    • 2015-10-15
    • 2016-06-11
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多