2012-05-04 2 views
2

테라코타가 포함 된 분산 환경에서 EHCache를 설정하려고합니다. 여기서는 응용 프로그램 서버와 테라코타 서버를 연결할 수 있으며 테라코타 개발자 콘솔에서 복제 된 개체를 볼 수 있습니다.테라코타로 최대 절전 모드 분산 ehcache 설정시 세션 팩토리 문제

안녕 모두,이 예외 메시지가 나타납니다 왜 어떤 몸을 안내 할 수 있고 우리는 그것을 해결하는 방법을 경우 :

그러나 응용 프로그램 서버에

는 continiously 응용 프로그램의 나머지 부분이 제대로 실행되고 있지만 예외 메시지가 표시됩니다 다음과 같습니다. 또한 최대 절전 모드 응용 프로그램 용 테라코타 설정에 대한 포괄적 인 자습서가 있으면 도움이 될 것입니다.

여기서 [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 구현을 대체 할 특정 테라코타 병을 클래스 경로에 추가해야합니다. 귀하의 예외 스택에서 내가 ... 내 받는다는 종속성에서

어떤 테라코타 클래스 출력이 표시되지 않는 내가 가진 :

<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> 

당신은 또한를 최대 절전 모드로 연결하는 방법에 대한 테라코타 튜토리얼을 확인할 수 있습니다 http://terracotta.org/documentation/enterprise-ehcache/get-started-hibernate