java.lang.ExceptionInInitializerError的原因

      这个错误是说变量初始化出现问题,通常出现在静态变量尤其是单例模式。这种问题往往是初始化顺序不对造成的,下面举个简单的例子。

      如果你在别的类调用getInstance,就会报错ExceptionInInitializerError。这是因为类加载时不会为实例变量赋值,对象创建时不会为静态变量赋值。我们调用getInstance时,此类就开始加载,加载的时候不会为实例变量赋值,但是会按顺序给静态变量赋值,所以先为example赋值,然后为test赋值即初始化。但为example赋值时出现了个小插曲,它会调用构造方法创建一个对象。对象创建时不会为静态变量test赋值,而构造器内却已经调用test,于是报错了。

改为:

就可以了

hibernate-3.2.5.ga 报java.lang.ExceptionInInitializerError是什么原因

01-07

各位大侠,这几天按照网上的介绍,在Eclpse环境里面,作了个简单的Hibernate例子,运行,但是报错:java.lang.ExceptionInInitializerError,具体的代码以及配置文件如下:rnrn hibernate.cfg.xml配置内容:rn rnrnrnrnrn rn CBSrn rn jdbc:oracle:thin:@localhost:1521:CBSTJrn rn rn net.sf.hibernate.dialect.OracleDialectrn rn 50rn 25rn truern falsern adminrn rn oracle.jdbc.driver.OracleDriverrn rn rn rn rnrnrnTRegister.hbm.xml的内容:rnrnrnrnrnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrn配置文件都放在classes下面。rnrnrn HibernateUtil.java获取唯一Session实例:rnrn package hibernate;rn rnimport org.hibernate.HibernateException;rnimport org.hibernate.Session;rnimport org.hibernate.SessionFactory;rnimport org.hibernate.cfg.Configuration;rnrnpublic class HibernateUtilrn rn private static final SessionFactory sessionFactory;rn rn staticrn rn tryrn rn Configuration config = new Configuration().configure("/hibernate.cfg.xml");rn rn sessionFactory = config.buildSessionFactory();rn rn catch(Throwable e)rn System.out.println("ExceptionInInitializerError----------" );rn throw new ExceptionInInitializerError(e);rn rn rn rn public static final ThreadLocal session = new ThreadLocal();rn rn public static Session currentSession() throws HibernateExceptionrn rn Session s = (Session)session.get();rn rn //Open a new Session,if this Thread has none yetrn if(s == null || !s.isOpen())rn rn s = sessionFactory.openSession(); rn session.set(s);rn rn return s;rn rn rn public static void closeSession() throws HibernateExceptionrn rn Session s = (Session)session.get();rn session.set(null);rn if(s != null)rn s.close();rn rnrnrnrn 当运行到:sessionFactory = config.buildSessionFactory()时,就报上面那个错java.lang.ExceptionInInitializerError。rn 我在工程的LIB下面,我把hibernate-3.2.5.ga.tar.gz里面的JAR都已经放进去(包括hibernate3.jar),构建路径当然也已经指向\WEB-INF\lib了,但是还是报错,是什么原因呢?rn rn 论坛

没有更多推荐了,返回首页