我在使用在多个节点之间共享的基于文件存储的缓存存储时遇到以下异常。
Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:174)
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)
... 73 more
Caused by: org.infinispan.persistence.spi.PersistenceException: java.io.IOException: Unsupported protocol version 22
at org.infinispan.persistence.file.SingleFileStore.start(SingleFileStore.java:135)
at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:141)
... 78 more
Caused by: java.io.IOException: Unsupported protocol version 22
at org.jboss.marshalling.river.RiverUnmarshaller.start(RiverUnmarshaller.java:1249)
at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.startObjectInput(AbstractJBossMarshaller.java:128)
at org.infinispan.marshall.core.VersionAwareMarshaller.startObjectInput(VersionAwareMarshaller.java:142)
at org.infinispan.marshall.core.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:98)
at org.infinispan.commons.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:80)
at org.infinispan.persistence.file.SingleFileStore.rebuildIndex(SingleFileStore.java:212)
at org.infinispan.persistence.file.SingleFileStore.start(SingleFileStore.java:126)
... 79 more
这是我的缓存配置的样子:
<distributed-cache name="singletons">
<versioning scheme="SIMPLE"/>
<persistence passivation="false" >
<file-store
path="${infinispan.dir}/broker-ds/singletons"
fetch-state="true" shared="true" preload="true" />
</persistence>
</distributed-cache>
有什么问题的线索吗?我使用的是 Infinispan 8.1 版本。
更新:
我使用了基于 JDBC 的共享存储,而不是基于共享文件的存储,并且一切正常。
最佳答案
不幸的是,您(目前)不能使用在多个节点之间共享的文件存储。使用专用于每个节点的目录或使用能够共享的存储(jdbc、jpa、cassandra)。
关于java - 在 Infinispan 中使用共享文件存储时获取 "java.io.IOException: Unsupported protocol version 22",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40373530/