0

我正在使用 CacheStoreFactory 实现和 CacheStoreSessionListener 创建缓存。如果我使用这些字段设置 CacheConfiguration 然后调用 createCache 但在 INSTANCE 方法中我得到这个异常:

线程“主”javax.cache.CacheException 中的异常:类 org.apache.ignite.IgniteCheckedException:无法验证缓存配置(确保缓存配置中的所有对象都是可序列化的):LongCache

在静态方法中,这不会发生。这可以通过修改示例中的 CacheJdbcStoreExample.java 轻松重现。这发生在 Ignite 1.30 下

4

1 回答 1

1

您很可能将工厂或侦听器声明为匿名类。匿名类始终包含对父类的引用(LongCache在您的情况下)。所以如果工厂在LongCacheinstance的上下文中被序列化,那么这个instance也是被序列化的。在静态方法的情况下,此实例不存在,因此一切正常。

我建议将匿名类转换为私有静态类。这将使您更好地控制序列化的内容。

于 2015-08-28T19:11:02.147 回答