Infinispan 缓存存储 - Wildlfy 插件模块中的“找不到类”异常

问题描述

我使用的是 11.0.7 Infinispan 缓存存储,它配置了一个 XML 文件。我已经在 Wildlfy 服务器中导入了该缓存模块。我在我的应用程序中使用了这个依赖项。但是当我尝试从缓存中获取缓存元素时,它给了我异常 select strftime('%Y-%m-%d %H:%M',time) time,count(*) as cnt FROM log where strftime('%Y-%m-%d %H:%M',time) = strftime('%Y-%m-%d %H:%M','Now')

我用过这个配置:

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>

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

解决方法

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

如果你没有在你的应用程序中打包它,该模块必须存在于你的wildfly上并且你的应用程序知道(例如jboss-deployment-structure.xml)

,

我似乎在类似的设置中遇到了同样的问题,我也认为这可能是类加载器的问题。我在 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...