Hibernate:可以不将SessionFactory绑定到JNDI名称吗?

时间:2009-03-18 16:58:46

标签: hibernate jndi sessionfactory

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

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

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名称,但不知道是否会导致其他问题?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

如果删除属性名称,请在配置文件中使用value =“sessionFactory” 没关系。