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

Ehcache错误:java.lang.NoClassDefFoundError:net/sf/Ehcache/pool/sizeof/JVM信息

谢修真
2023-03-14

我的组织正在开发一个POC,用于使用terracotta服务器版本4.0.5实现ehcache。使用我的本地机器进行测试时一切正常。

当我们将代码部署到web应用程序时,它可以很好地连接到TSA,但我在尝试创建CacheManager实例时收到以下异常。

我已经验证了所有必需的jar都在类路径中。

ehcache-ee-2.7.5.jar
slf4j-api-1.6.6.jar
slf4j-jdk14-1.7.6.jar
terracotta-toolkit-runtime-ee-4.0.5.jar

它们在我的WEB应用程序WAR的WEB-INF/lib文件夹中。我们在weblogic 10.3.2上运行,JRE为jrmc-3.1.2-1.6.0。

有人知道什么会导致这样的错误吗?感谢您的帮助。

: org.terracotta.toolkit.nonstop.NonStopToolkitInstantiationException: org.terracotta.toolkit.ToolkitRuntimeException: java.lang.NoClassDefFoundError: net/sf/ehcache/pool/sizeof/JvmInformation 
at com.terracotta.toolkit.AsyncToolkitInitializer.getToolkit(AsyncToolkitInitializer.java:46) 
at com.terracotta.toolkit.AsyncToolkitInitializer.getToolkit(AsyncToolkitInitializer.java:31) 
at com.terracotta.toolkit.NonStopToolkitImpl.getInitializedToolkit(NonStopToolkitImpl.java:88) 
at com.terracotta.toolkit.NonStopToolkitImpl.shutdown(NonStopToolkitImpl.java:277) 
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.shutdown(ToolkitInstanceFactoryImpl.java:265) 
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.shutdown(TerracottaClusteredInstanceFactory.java:142) 
at net.sf.ehcache.terracotta.ClusteredInstanceFactoryWrapper.shutdown(ClusteredInstanceFactoryWrapper.java:121) 
at net.sf.ehcache.terracotta.TerracottaClient.shutdownClusteredInstanceFactoryWrapper(TerracottaClient.java:159) 
at net.sf.ehcache.terracotta.TerracottaClient.shutdown(TerracottaClient.java:153) 
at net.sf.ehcache.CacheManager.init(CacheManager.java:395) 
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:265) 
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1123) 
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1099) 
at com.hmsy.cts.cache.HMSCacheManager.getCacheInstance(HMSCacheManager.java:22) 
at com.hmsy.cts.cache.CacheSearchAgent.executeSearch(CacheSearchAgent.java:41) 
at com.hmsy.cts.delegate.SearchRecipient.work(SearchRecipient.java:68) 
at com.hmsy.shr.event.ECEventWorkerThreadSafe.doWork(ECEventWorkerThreadSafe.java:39) 
at com.hmsy.cts.web.CTServiceListener.actionPerformed(CTServiceListener.java:65) 
at com.hmsy.shr.event.ECEventService.fireEvent(ECEventService.java:118) 
at com.hmsy.cts.web.CTSearchServlet.processRequest(CTSearchServlet.java:126) 
at com.hmsy.cts.web.CTSearchServlet.doPost(CTSearchServlet.java:73) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) 
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:499) 
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:248) 
at com.hmsy.shr.web.ControllerServlet.processRequest(ControllerServlet.java:292) 
at com.hmsy.shr.web.ControllerServlet.doPost(ControllerServlet.java:316) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292) 
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
at com.hmsy.shr.web.filter.BroadcastMessageFilter.doFilter(BroadcastMessageFilter.java:62) 
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202) 
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108) 
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

共有1个答案

向苗宣
2023-03-14

我得到同样的错误,因为Ehcache在尝试查找JRockit JVM参数时得到NullPointerException。尝试使用常规JVM,而不是JRockit。它应该可以解决问题。

 类似资料:
  • 我在Hibernate 4上使用EHCache 2 . 6 . 9版。我在日志中看到以下警告: net.sf.ehcache.pool.SizeOf。ObjectGraphWalker checkMaxDepth:在尝试计算对象图的大小时,已达到1000个对象引用的配置限制。。。。 我没有将任何限制设置为1000。但是,在看到此警告后,我将 sizeOfPolicy 定义为 10000。但是,我仍

  • Ehcache集群 共有RMI,JGroups,JMS三个方案。JMS太过复杂,直接掠过。JGroups方案的配置比较复杂,如果不熟悉JGroups的同学可能用不好,而且是非核心包。所以简简单单就用ehcache-core自带的RMI了。 例子见showcase里的ehcache-hibernate-rmi.xml, 配置很简单,先把Factory配起来,简单的multicast自动发现: <ca

  • EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 5. 缓存数据会在虚拟机重启的过程中写入磁盘 6. 可以通过RMI、可插入API等方式进行分布式缓存 7

  • 我们有应用程序使用EHCache2.9.0。最近,我们每周观察到一次与ehcache Get/Put操作相关的死锁,一旦清除缓存,问题就消失了。 我们在缓存get操作期间观察RandomAccessFile上的锁,在put操作期间观察ReentrantReadWriteLock上的锁。 请ehcache专家就可能出现的问题提出见解? “http938”#25950守护进程prio=5 os_pri

  • 问题内容: 我正在使用hibernate的spring项目,并希望使用ehcache实现二级缓存。我看到了许多解决方法: 引入了注释 一个旨在成为继任者的工具集。 可以很好地集成到hibernate自身中,以使用例如注释进行缓存。 使用代理。基于注释的配置很快变得有限或复杂(例如,注释嵌套的多个级别) 就我个人而言,我认为还不够彻底,因此我可能宁愿考虑使用更积极的方法。尽管这似乎是最完整的实现(例

  • ehcache-jcache 是 ehcache 对 JCache 标准 API (JSR107) 的实现。