2012-05-09 5 views
0

以下のエラーメッセージがアプリケーションサーバーに表示される理由を助けてくれますか?私はTerracottaでEHCacheをセットアップしようとしています。このメッセージが表示される理由を示唆してください。EHCacheを使用したTerracotta構成のHibernate Session Factoryの検索中にエラーが発生する

[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

私は今日まったく同じ問題を抱えていました。これは、ライン146と147で私たちは私たちがinstanceFieldは、クラスのインスタンスからフィールドであることを

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

を知っている152

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

ラインでクラスProviderMBeanRegistrationHelperのバグに起因すると思わちょうどそう結論

SessionFactoryRegistry.INSTANCE 

としてクラスから静的に求めることができる単一のインスタンスを有することがたまたま、iはFOとしてライン152を変更しSessionFactoryRegistry llows

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

hibernate-ehcache jarファイルのクラスをコンパイルして置き換えましたが、例外はなくなりました。私はこれについての問題を提出します。

関連する問題