我正在使用CacheStoreFactory实现和CacheStoreSessionListener创建缓存。如果我使用这些字段设置CacheConfiguration然后调用createCache但是在INSTANCE方法中我得到了这个异常:
线程中的异常" main" javax.cache.CacheException:class org.apache.ignite.IgniteCheckedException:无法验证缓存 配置(确保缓存配置中的所有对象都是 serializable):LongCache
在静态方法中,不会发生这种情况。通过修改示例中的CacheJdbcStoreExample.java可以轻松地重现这一点。这种情况发生在Ignite 1.30
之下答案 0 :(得分:1)
您很可能将工厂或监听器声明为匿名类。匿名类始终包含对父类的引用(在您的情况下为LongCache
)。因此,如果工厂在LongCache
实例的上下文中序列化,则此实例也是序列化的。在静态方法的情况下,这个实例不存在,因此一切正常。
我建议将匿名类转换为私有静态类。这将使您更好地控制序列化的内容。