第一次使用Hibernate4.3.5时,报如下错误
WARN: HHH000277:Could not bind factory to JNDI
org.hibernate.engine.jndi.JndiException:Error parsing JNDI name [HibernateSessionFactory]
atorg.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:141)
atorg.hibernate.engine.jndi.internal.JndiServiceImpl.bind(JndiServiceImpl.java:157)
atorg.hibernate.internal.SessionFactoryRegistry.addSessionFactory(SessionFactoryRegistry.java:103)
atorg.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:497)
atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857)
atcom.pansky.test.App.main(App.java:32)
Caused by:javax.naming.NoInitialContextException: Need to specify class name inenvironment or system property, or as an applet parameter, or in an applicationresource file: java.naming.factory.initial
atjavax.naming.spi.NamingManager.getInitialContext(Unknown Source)
atjavax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
atjavax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
atjavax.naming.InitialContext.getNameParser(Unknown Source)
atorg.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:135)
...5 more
解决方案:
去掉<session-factory name="HibernateSessionFactory">中的name="HibernateSessionFactory"。