当前位置: 首页 > 知识库问答 >
问题:

使用terracotta设置hibernate分布式ehcache时的会话工厂问题

周浩博
2023-03-14

我正在尝试使用Terracotta在分布式环境中设置EHCache。在这里,我能够连接应用程序服务器和兵马俑服务器,在兵马俑开发人员控制台中,我能够看到复制的对象。

但是在应用程序服务器中不断出现以下异常消息,尽管应用程序的其余部分运行正常:

大家好,如果有人能指导一下为什么会出现这个异常消息,以及我们该如何解决它。此外,它将有助于我有任何全面的教程,为hibernate应用程序设置terracotta。

这里[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)*

共有1个答案

燕烨
2023-03-14

当你使用 Terracotta 时,你需要在类路径上添加特定的 terracotta jar 来取代 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

 类似资料:
  • 任何人都可以帮助我为什么下面的错误消息会出现在应用程序服务器上。我正在尝试用Terracotta设置EHCache。请建议任何线索,为什么会出现此消息。

  • 我正在尝试在eclipse中设置Hibernate Tools。问题是它找不到任何映射文件。 我创建了一个控制台配置,指向我的environment.properties文件和hibernate.cfg.xml.问题是hibernate.cfg.xml.中没有映射 看起来它在myproject持久化中使用了spring bean sessionFactory。xml(如下)来查找所需的映射文件。我

  • 1. 前言 Hibernate 的核心价值观是:开发者们!做你们应该做的。脏的、累的、没技术含义的由本尊来做。 本节课和大家一起好好的聊聊 Hibernate 的核心组件之一:会话工厂(SessionFactory)。 通过本节课,你将学习到: 会话工厂的设计要求; 会话工厂的核心功能。 2. 会话工厂的作用 原生 Jdbc 开发如同自己炒菜做饭,需经手买菜、洗菜、做菜……一系列过程。 基于 Hi

  • 我正在从事一个使用Hibernate4.1、Spring3.1和JPA2.0的项目,我想验证我从互联网上收集到的信息是否正确。 我正在尝试决定是使用JPA entityManager还是特定于hibernate的sessionFactory。 起初,我计划使用entityManager和完整的JPA规范,因此我的项目将与Hibernate脱钩,如果这种想法吸引了我,或者后来有什么东西说服了我,我可

  • 我已经创建了一个使用分布式ehcache的spring boot项目。我下载并运行terracotta服务器,配置在tc-config.xml中。服务器在本地主机9510上成功运行。以下是我的ehcache。xml,它位于spring boot项目的类路径中 以下是我的maven依赖。 下面是我尝试创建缓存管理器的代码,以便在我的应用程序中使用它 但我得到的例外如下 任何帮助都将不胜感激

  • 我有一个运行Hibernate4.1.7的应用程序,并且正在使用ehcache作为2级缓存。我知道从冬眠4开始,我需要使用与冬眠捆绑在一起的ehcache罐子,但这些罐子已经很老了。 当前最新版本的ehcache是2.6.3,但hibernate 4.1.7附带的版本是2.4.3。问题是hibernate没有与EhcacheTerracotta jar捆绑在一起,我的Terracott服务器也与E