-1

我正在使用配置有 XML 文件的 11.0.7 Infinispan 缓存存储。我已将该缓存模块导入 Wildlfy 服务器。我在我的应用程序中使用此依赖项。但是当我尝试从缓存中获取缓存元素时,它给了我异常ClassNotFound

我用过这个配置:

<local-cache name="TaskStoreCache" statistics="false">
    <locking acquire-timeout="60000" />
    <persistence passivation="false">
        <rocksdb-store path=" C:\CacheStore\Data\TaskStoreCache" preload="false" shared="false" 
                       purge="false" read-only="false">
            <expiration path="C: \CacheStore\Expired\TaskStoreCache"/>
        </rocksdb-store>
    </persistence>
    <memory max-count="500"/>
    <encoding media-type="application/x-java-object"/> 
</local-cache>

我使用了这个序列化:

<serialization  marshaller="org.infinispan.commons.marshall.JavaSerializationMarshaller">
    <white-list>
        <regex>com.xyz.cache.*</regex>
        <regex>java.util.*</regex>                  
        <regex>java.lang.*</regex>  
    </white-list>
</serialization>

我确信这是一个与类加载相关的问题。请帮帮我。

4

2 回答 2

0

您应该仔细检查依赖项是如何包装到您的应用程序(war/ear)中的,并确保范围是正确的。

如果您没有将它打包到您的应用程序中,则该模块必须存在于您的 Wildfly 上并且为您的应用程序所知(例如 jboss-deployment-structure.xml)

于 2020-12-23T19:07:37.807 回答
0

我似乎对类似的设置也有同样的问题,我也认为这可能是一个类加载器问题。我在 infinispan 配置中的白名单明确列出了该类,并且该类包含在我的战争中的一个库中。

但我不断收到此错误:

java.lang.ClassNotFoundException: net.transdata.komalog.cache.SessionInfoImpl from [Module "org.infinispan.commons" version 11.0.4.Final from local module loader @1d8062d2 (finder: local module finder @1e63ec0b (roots: C:\develop\wildfly-21.0.2.Final\modules,C:\develop\wildfly-21.0.2.Final\modules\system\layers\base))]
    at java.base/jdk.internal.reflect.GeneratedConstructorAccessor823.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.exts.ThrowableExternalizer.readGenericThrowable(ThrowableExternalizer.java:282)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:259)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:42)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.core.GlobalMarshaller.readWithExternalizer(GlobalMarshaller.java:728)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:709)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:358)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.core.BytesObjectInput.readObject(BytesObjectInput.java:32)
    at org.infinispan@11.0.4.Final//org.infinispan.marshall.exts.ThrowableExternalizer.readObject(ThrowableExternalizer.java:226)
于 2021-01-19T06:18:27.707 回答