【问题标题】:Hibernate: Is it okay to not bind SessionFactory to a JNDI name?Hibernate:不将 SessionFactory 绑定到 JNDI 名称可以吗?
【发布时间】:2010-10-14 03:16:00
【问题描述】:

有一种方法可以在 hibernate.cfg.xml 文件中设置 SessionFactory 的 JNDI 名称。但是,如果我没有明确地使用 JNDI 查找在我的 Web 应用程序中获取我的 SessionFactory,是否可以不给它一个 JNDI 名称?

我问的原因是,如果我没有设置我的 JNDI 名称,我的 JUnit 测试将运行良好。但是如果我只通过在 hibernate.cfg.xml 的 sessionfactory 标记中指定“名称”来设置它,它会首先说:

WARN  [WebApp:SessionFactoryObjectFactory.addInstance] Could not bind factory to JNDI

并抛出异常:

javax.naming.NoInitialContextException:Need to specify class name in environment or system property, or as an appletparameter, or in an application resource file:

所以我的解决方法是从我的 hibernate.cfg.xml 中删除 JNDI 名称,但不知道这是否会导致其他问题?

【问题讨论】:

    标签: hibernate jndi sessionfactory


    【解决方案1】:

    我会说大多数时候都可以,但您也可以考虑为您的 JUnit 测试使用不同的 hibernate.cfg.xm。

    【讨论】:

    • 您是如何做到这一点的?如何在 Java 中指定为单元测试使用不同的映射文件?
    • 您可以更改类路径以包含一个配置文件或另一个,或者您可以使用 Configuration.configure("hibernate-test.cfg.xml" 使用特定配置文件在 Java 中构建 SessionFactory )。
    【解决方案2】:

    如果删除属性名,配置文件中的 value = "sessionFactory" 会好的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 2011-01-31
      • 1970-01-01
      • 2014-06-10
      • 2012-10-15
      • 2011-01-29
      • 1970-01-01
      相关资源
      最近更新 更多