3

有一种方法可以在 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 名称,但不知道这是否会导致其他问题?

4

2 回答 2

3

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

于 2009-03-18T20:58:14.237 回答
0

如果删除属性名称,在配置文件中使用 value = "sessionFactory" 就可以了。

于 2012-08-27T16:11:25.017 回答