2012-05-09 31 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文件中的類,並且異常消失了。我會就此提出一個問題。

相關問題