Infinispan的预加载问题(不是AdvancedCacheLoader的实例) [英] Preloading issue with Infinispan (not instance of AdvancedCacheLoader)

查看:139
本文介绍了Infinispan的预加载问题(不是AdvancedCacheLoader的实例)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用具有以下配置的infinispan的SingleFileStore启动缓存:

I try to start a cache with a SingleFileStore for infinispan with have the following config:

 confBuilder.persistence().addSingleFileStore()
                    .location("Something").fetchPersistentState(Boolean.TRUE)
                    .preload(true).purgeOnStartup(false);

但是升级到infinispan的较新版本后,我开始出现以下错误:

but after upgrading to a newer version of infinispan I start getting the following error:

Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:171)
at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)
at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)
at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)
at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:218)
at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:853)
at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:599)
at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:554)
at org.infinispan.manager.DefaultCacheManager.access$100(DefaultCacheManager.java:116)
at org.infinispan.manager.DefaultCacheManager$1.run(DefaultCacheManager.java:453)

Caused by: org.infinispan.persistence.spi.PersistenceException: Cannot preload from cache loader 'org.infinispan.persistence.cluster.ClusterLoader' as it doesn't implement 'org.infinispan.persistence.spi.AdvancedCacheLoader'
at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:208)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
... 10 more

反编译org.infinispan.persistence.cluster.ClusterLoader之后,我看到它实现了Cache,但没有实现AdvancedCache.我猜有一个依赖项或配置问题,但我不知道如何解决.

After decompiling org.infinispan.persistence.cluster.ClusterLoader, I see that it implements Cache but not AdvancedCache. I guess there is a dependency or configuration issue, but I cannot figure out how.

我的pom.xml包含以下内容:

My pom.xml contains the following:

<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-core</artifactId>
    <version>8.2.2.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.jbossts</groupId>
    <artifactId>jbossjta</artifactId>
    <version>4.16.6.Final</version>
</dependency>

如果将preload设置为false,则至少不会收到此错误.

If I set preload to false I won't get this error at least.

-------- UPDATE ---------------

--------UPDATE---------------

我可能应该提到我之前在流程中看到以下错误:

I should probably mention that I see the following error in the flow before:

interceptors.InvocationContextInterceptor (InvocationContextInterceptor.java:140) - ISPN000136: Error executing command SizeCommand, writing keys []
java.lang.NullPointerException
at org.infinispan.distribution.impl.DistributionManagerImpl.getReadConsistentHash(DistributionManagerImpl.java:110) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.stream.impl.AbstractCacheStream.performOperationRehashAware(AbstractCacheStream.java:299) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.stream.impl.AbstractCacheStream.performOperation(AbstractCacheStream.java:258) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.stream.impl.AbstractCacheStream.performOperation(AbstractCacheStream.java:247) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.stream.impl.DistributedCacheStream.count(DistributedCacheStream.java:403) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.commands.read.SizeCommand.perform(SizeCommand.java:54) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]
at org.infinispan.commands.read.SizeCommand.perform(SizeCommand.java:25) ~[infinispan-core-8.2.2.Final.jar:8.2.2.Final]

推荐答案

可以将其连接到我们过去遇到的问题.您可以尝试迁移到最新的稳定版本( 8.2.2 ).

This can be connected to one of the issues we have had in the past. Could you please try migrating to the latest stable version (8.2.2).

这篇关于Infinispan的预加载问题(不是AdvancedCacheLoader的实例)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆