今天在开始复习Hibernate,但是遇到了一个这样的异常
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getNameParser(Unknown Source)
at org.hibernate.util.NamingHelper.bind(NamingHelper.java:52)
at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:90)
at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:306)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
at cn.edu.hunnu.hibernate.util.HibernateUtils.getSessionFactory(HibernateUtils.java:20)
at cn.edu.hunnu.hibernate.first.Client.main(Client.java:14)
我的配置文件很简单,如下:
jdbc:mysql://localhost:3306/hibernateTestDB
com.mysql.jdbc.Driver
hibernate
hibernate
org.hibernate.dialect.MySQLDialect
true
考虑到没有用到JNDI,怎么会出现这样的异常呢,最后才发现是我的配置文件中
这一行多出了一个name=“luoxiaoyi”,这样,Hibernate就试图将我这个Session-factory 注册到JNDI中去,于是便出现了这样的错误。删除之后就解决了这个错误。