Ehcache(无法加载Class)
Ehcache( Unable to load Class)
大家好我遇到了无法加载我的 ehcache.xml 文件的问题,它给我的错误如下
Exception in thread "main" net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.terracotta.ExpressEnterpriseTerracottaClusteredInstanceFactory. Initial cause was org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:90)
at net.sf.ehcache.terracotta.TerracottaClusteredInstanceHelper.newClusteredInstanceFactory(TerracottaClusteredInstanceHelper.java:157)
at net.sf.ehcache.terracotta.TerracottaClient.createNewClusteredInstanceFactory(TerracottaClient.java:180)
at net.sf.ehcache.terracotta.TerracottaClient.createClusteredInstanceFactory(TerracottaClient.java:129)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:463)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:947)
at BigMemoryDemo.main(BigMemoryDemo.java:8)
Caused by: java.lang.RuntimeException: org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.createToolkit(TerracottaToolkitBuilder.java:63)
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.buildToolkit(TerracottaToolkitBuilder.java:56)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.createTerracottaToolkit(ToolkitInstanceFactoryImpl.java:183)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.<init>(ToolkitInstanceFactoryImpl.java:119)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.<init>(ToolkitInstanceFactoryImpl.java:129)
at org.terracotta.modules.ehcache.EnterpriseToolkitInstanceFactory.<init>(EnterpriseToolkitInstanceFactory.java:23)
at org.terracotta.modules.ehcache.store.EnterpriseTerracottaClusteredInstanceFactory.createToolkitInstanceFactory(EnterpriseTerracottaClusteredInstanceFactory.java:21)
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.<init>(TerracottaClusteredInstanceFactory.java:65)
at org.terracotta.modules.ehcache.store.EnterpriseTerracottaClusteredInstanceFactory.<init>(EnterpriseTerracottaClusteredInstanceFactory.java:15)
at net.sf.ehcache.terracotta.ExpressEnterpriseTerracottaClusteredInstanceFactory.<init>(ExpressEnterpriseTerracottaClusteredInstanceFactory.java:11)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:73)
... 9 more
Caused by: org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at com.terracotta.toolkit.api.TerracottaToolkitFactoryService.createToolkit(TerracottaToolkitFactoryService.java:49)
at org.terracotta.toolkit.ToolkitFactory.create(ToolkitFactory.java:100)
at org.terracotta.toolkit.ToolkitFactory.createToolkit(ToolkitFactory.java:84)
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.createToolkit(TerracottaToolkitBuilder.java:61)
... 23 more
Caused by: java.lang.RuntimeException: Unable to create toolkit.
at com.terracotta.toolkit.client.TerracottaToolkitCreator.createToolkit(TerracottaToolkitCreator.java:70)
at com.terracotta.toolkit.api.EnterpriseTerracottaToolkitFactoryService.createToolkit(EnterpriseTerracottaToolkitFactoryService.java:17)
at com.terracotta.toolkit.api.TerracottaToolkitFactoryService.createToolkit(TerracottaToolkitFactoryService.java:44)
... 26 more
Caused by: java.lang.RuntimeException: org.terracotta.toolkit.ToolkitRuntimeException: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at com.terracotta.toolkit.client.TerracottaToolkitCreator.initializeDefaultCacheManagerProvider(TerracottaToolkitCreator.java:175)
at com.terracotta.toolkit.client.TerracottaToolkitCreator.createToolkit(TerracottaToolkitCreator.java:55)
... 28 more
Caused by: org.terracotta.toolkit.ToolkitRuntimeException: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at com.terracotta.toolkit.express.TerracottaInternalClientImpl.instantiate(TerracottaInternalClientImpl.java:159)
at com.terracotta.toolkit.client.TerracottaToolkitCreator.initializeDefaultCacheManagerProvider(TerracottaToolkitCreator.java:173)
... 29 more
Caused by: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at net.sf.ehcache.store.restartability.EhcacheRestartability.constructRestartability(EhcacheRestartability.java:189)
at net.sf.ehcache.store.restartability.EhcacheRestartability.startup(EhcacheRestartability.java:94)
at net.sf.ehcache.EnterpriseFeaturesManager.startup(EnterpriseFeaturesManager.java:102)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:520)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1092)
at com.terracotta.toolkit.ToolkitCacheManagerProvider.createDefaultToolkitCacheManager(ToolkitCacheManagerProvider.java:19)
at com.terracotta.toolkit.ToolkitCacheManagerProvider.<init>(ToolkitCacheManagerProvider.java:14)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.terracotta.toolkit.express.TerracottaInternalClientImpl.instantiate(TerracottaInternalClientImpl.java:156)
... 30 more
注意:- 之前工作正常。我刚刚在 TSA 又做了一个被动节点。 TSA 已启动 & 运行
这是ehcache.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
name="BigMemoryMax">
<defaultCache
maxEntriesLocalHeap="0"/>
<cache name="PersonCache" maxEntriesLocalHeap="20">
<searchable/>
</cache>
<terracottaConfig url="127.0.0.1:9510" />
</ehcache>
确切的错误在堆栈跟踪的底部:
Caused by: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at net.sf.ehcache.store.restartability.EhcacheRestartability.constructRestartability(EhcacheRestartability.java:189)
at net.sf.ehcache.store.restartability.EhcacheRestartability.startup(EhcacheRestartability.java:94)
at net.sf.ehcache.EnterpriseFeaturesManager.startup(EnterpriseFeaturesManager.java:102)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:520)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1092)
这表示存在配置问题,鉴于您在问题中提供的配置没有磁盘组件,这意味着您的应用程序正在加载不同的 ehcache.xml
。
通常 Ehcache 在其日志中指示加载了哪个配置文件。如果您没有看到,请在您的日志框架中将 net.sf.ehcache
的日志记录级别设置为 DEBUG
。
大家好我遇到了无法加载我的 ehcache.xml 文件的问题,它给我的错误如下
Exception in thread "main" net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.terracotta.ExpressEnterpriseTerracottaClusteredInstanceFactory. Initial cause was org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:90)
at net.sf.ehcache.terracotta.TerracottaClusteredInstanceHelper.newClusteredInstanceFactory(TerracottaClusteredInstanceHelper.java:157)
at net.sf.ehcache.terracotta.TerracottaClient.createNewClusteredInstanceFactory(TerracottaClient.java:180)
at net.sf.ehcache.terracotta.TerracottaClient.createClusteredInstanceFactory(TerracottaClient.java:129)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:463)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:947)
at BigMemoryDemo.main(BigMemoryDemo.java:8)
Caused by: java.lang.RuntimeException: org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.createToolkit(TerracottaToolkitBuilder.java:63)
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.buildToolkit(TerracottaToolkitBuilder.java:56)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.createTerracottaToolkit(ToolkitInstanceFactoryImpl.java:183)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.<init>(ToolkitInstanceFactoryImpl.java:119)
at org.terracotta.modules.ehcache.ToolkitInstanceFactoryImpl.<init>(ToolkitInstanceFactoryImpl.java:129)
at org.terracotta.modules.ehcache.EnterpriseToolkitInstanceFactory.<init>(EnterpriseToolkitInstanceFactory.java:23)
at org.terracotta.modules.ehcache.store.EnterpriseTerracottaClusteredInstanceFactory.createToolkitInstanceFactory(EnterpriseTerracottaClusteredInstanceFactory.java:21)
at org.terracotta.modules.ehcache.store.TerracottaClusteredInstanceFactory.<init>(TerracottaClusteredInstanceFactory.java:65)
at org.terracotta.modules.ehcache.store.EnterpriseTerracottaClusteredInstanceFactory.<init>(EnterpriseTerracottaClusteredInstanceFactory.java:15)
at net.sf.ehcache.terracotta.ExpressEnterpriseTerracottaClusteredInstanceFactory.<init>(ExpressEnterpriseTerracottaClusteredInstanceFactory.java:11)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:73)
... 9 more
Caused by: org.terracotta.toolkit.ToolkitInstantiationException: java.lang.RuntimeException: Unable to create toolkit.
at com.terracotta.toolkit.api.TerracottaToolkitFactoryService.createToolkit(TerracottaToolkitFactoryService.java:49)
at org.terracotta.toolkit.ToolkitFactory.create(ToolkitFactory.java:100)
at org.terracotta.toolkit.ToolkitFactory.createToolkit(ToolkitFactory.java:84)
at org.terracotta.modules.ehcache.TerracottaToolkitBuilder.createToolkit(TerracottaToolkitBuilder.java:61)
... 23 more
Caused by: java.lang.RuntimeException: Unable to create toolkit.
at com.terracotta.toolkit.client.TerracottaToolkitCreator.createToolkit(TerracottaToolkitCreator.java:70)
at com.terracotta.toolkit.api.EnterpriseTerracottaToolkitFactoryService.createToolkit(EnterpriseTerracottaToolkitFactoryService.java:17)
at com.terracotta.toolkit.api.TerracottaToolkitFactoryService.createToolkit(TerracottaToolkitFactoryService.java:44)
... 26 more
Caused by: java.lang.RuntimeException: org.terracotta.toolkit.ToolkitRuntimeException: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at com.terracotta.toolkit.client.TerracottaToolkitCreator.initializeDefaultCacheManagerProvider(TerracottaToolkitCreator.java:175)
at com.terracotta.toolkit.client.TerracottaToolkitCreator.createToolkit(TerracottaToolkitCreator.java:55)
... 28 more
Caused by: org.terracotta.toolkit.ToolkitRuntimeException: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at com.terracotta.toolkit.express.TerracottaInternalClientImpl.instantiate(TerracottaInternalClientImpl.java:159)
at com.terracotta.toolkit.client.TerracottaToolkitCreator.initializeDefaultCacheManagerProvider(TerracottaToolkitCreator.java:173)
... 29 more
Caused by: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at net.sf.ehcache.store.restartability.EhcacheRestartability.constructRestartability(EhcacheRestartability.java:189)
at net.sf.ehcache.store.restartability.EhcacheRestartability.startup(EhcacheRestartability.java:94)
at net.sf.ehcache.EnterpriseFeaturesManager.startup(EnterpriseFeaturesManager.java:102)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:520)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1092)
at com.terracotta.toolkit.ToolkitCacheManagerProvider.createDefaultToolkitCacheManager(ToolkitCacheManagerProvider.java:19)
at com.terracotta.toolkit.ToolkitCacheManagerProvider.<init>(ToolkitCacheManagerProvider.java:14)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.terracotta.toolkit.express.TerracottaInternalClientImpl.instantiate(TerracottaInternalClientImpl.java:156)
... 30 more
注意:- 之前工作正常。我刚刚在 TSA 又做了一个被动节点。 TSA 已启动 & 运行
这是ehcache.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
name="BigMemoryMax">
<defaultCache
maxEntriesLocalHeap="0"/>
<cache name="PersonCache" maxEntriesLocalHeap="20">
<searchable/>
</cache>
<terracottaConfig url="127.0.0.1:9510" />
</ehcache>
确切的错误在堆栈跟踪的底部:
Caused by: net.sf.ehcache.config.InvalidConfigurationException: The disk path for this cache manager is the default path. You must define a specific unique disk path for this manager in order to use restartable caches.
at net.sf.ehcache.store.restartability.EhcacheRestartability.constructRestartability(EhcacheRestartability.java:189)
at net.sf.ehcache.store.restartability.EhcacheRestartability.startup(EhcacheRestartability.java:94)
at net.sf.ehcache.EnterpriseFeaturesManager.startup(EnterpriseFeaturesManager.java:102)
at net.sf.ehcache.CacheManager.doInit(CacheManager.java:520)
at net.sf.ehcache.CacheManager.init(CacheManager.java:395)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:270)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1116)
at net.sf.ehcache.CacheManager.newInstance(CacheManager.java:1092)
这表示存在配置问题,鉴于您在问题中提供的配置没有磁盘组件,这意味着您的应用程序正在加载不同的 ehcache.xml
。
通常 Ehcache 在其日志中指示加载了哪个配置文件。如果您没有看到,请在您的日志框架中将 net.sf.ehcache
的日志记录级别设置为 DEBUG
。