2012-05-04 37 views
2

我想在兵馬俑的分佈式環境中設置EHCache。在這裏,我可以連接應用程序服務器和Terracotta服務器,並在兵馬俑開發人員控制檯中查看複製對象。在設置hibernate分佈式ehcache與兵馬俑的會話工廠問題

但在應用服務器continiously以下異常消息出現,但應用程序的其餘部分運行正常:

大家好,如果任何機構可以指導爲什麼會出現這個異常信息,以及我們如何解決這個問題。 此外,它將有助於我有任何全面的教程來設置hibernate應用程序的兵馬俑。

這裏[CacheByAmitNode8081]是我在應用程序服務器中定義的緩存節點的名稱。

[DEBUG][04/05/12 12:49:07.973][CacheByAmitNode8081] Running mbean initializer task for ehcache hibernate... 
[DEBUG][04/05/12 12:49:07.995][CacheByAmitNode8081] Successfully registered bean 
[ERROR][04/05/12 12:49:08.000][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][04/05/12 12:49:08.001][CacheByAmitNode8081] SessionFactory is probably still being initialized... waiting for it to complete before enabling hibernate statistics monitoring via JMX 
[DEBUG][04/05/12 12:49:08.001][CacheByAmitNode8081] Running mbean initializer task for ehcache hibernate... 
[ERROR][04/05/12 12:49:08.001][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)* 

回答

0

當你使用兵馬俑時,你需要在你的類路徑中添加特定的兵馬俑瓶子來代替ehcache實現。在您的異常堆棧我沒有看到任何兵馬俑類輸出...

在我的Maven依賴我:

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache-core-ee</artifactId> 
    <version>2.5.2</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache-terracotta-ee</artifactId> 
    <version>2.5.2</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>org.terracotta</groupId> 
    <artifactId>terracotta-toolkit-1.5-runtime-ee</artifactId> 
    <version>4.2.0</version> 
    <scope>compile</scope> 
</dependency> 

你也可以檢查如何插入到Hibernate兵馬俑教程: http://terracotta.org/documentation/enterprise-ehcache/get-started-hibernate