2012-05-09 30 views
0

任何人都可以帮助我理解为什么以下错误消息可能出现在应用程序服务器上。我正尝试用兵马俑来设置EHCache。请建议任何线索为什么会出现此消息。使用EHCache查找Terracotta配置中的Hibernate会话工厂时出错

[DEBUG][08/05/12 13:50:19.648][CacheByAmitNode8081] Running mbean initializer task for ehcache hibernate... 
[DEBUG][08/05/12 13:50:19.766][CacheByAmitNode8081] Successfully registered bean 
[ERROR][08/05/12 13:50:19.805][CacheByAmitNode8081] Error locating Hibernate Session Factory 
java.lang.NullPointerException 
    at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:36) 
    at sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.get(UnsafeQualifiedObjectFieldAccessorImpl.java:20) 
    at java.lang.reflect.Field.get(Field.java:358) 
    at org.hibernate.cache.ehcache.management.impl.ProviderMBeanRegistrationHelper$RegisterMBeansTask.locateSessionFactory(ProviderMBeanRegistrationHelper.java:152) 
    at org.hibernate.cache.ehcache.management.impl.ProviderMBeanRegistrationHelper$RegisterMBeansTask.run(ProviderMBeanRegistrationHelper.java:117) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 
[DEBUG][08/05/12 13:50:19.815][CacheByAmitNode8081] SessionFactory is probably still being initialized... waiting for it to complete before enabling hibernate statistics monitoring via JMX 

回答

1

我今天有这个完全相同的问题。这似乎是由类ProviderMBeanRegistrationHelper错误在行152

Map map = (Map) instancesField.get(null); 

其中线146和147,我们有

Class factoryType = SessionFactoryRegistry.class; 
Field instancesField = getField(factoryType, "sessionFactoryMap"); 

,所以我们知道instanceField是场从类的实例引起SessionFactoryRegistry这恰好具有可以静态地从类如

SessionFactoryRegistry.INSTANCE 

最后获得的单个实例,我修改线152为FO llows

Map map = (Map) instancesField.get(SessionFactoryRegistry.INSTANCE); 

编译并替换了hibernate-ehcache jar文件中的类,并且异常消失了。我会就此提出一个问题。

相关问题