抑制的 Gridgain 错误:class org.gridgain.grid.GridException:无法序列化对象

Gridgain Error Suppressed: class org.gridgain.grid.GridException: Failed to serialize object

我试图将一个键作为 String ,将值作为 List Intervals> 放入缓存中,但出现以下错误。我在 dao 中有一个像 object,object> 一样通用的 put 方法,所以它可以用于差异缓存

输入

[MAC4, [com.xx.Interval@1bccacc7]]
[MAC3, [com.xx.Interval@754b3232]]
[MAC1, [com.xx.Interval@78cf9e78, com.xx.Interval@6ad163f]]  

MAC* 是键,间隔对象列表是值。 代码:

 griddao.put("intervals",tuple.getValue(0),tuple.getValue(1));

在 griddao 中

public void put(String cacheName, Object key, Object value) throws GridException {
                GridCache<Object, Object> cache = caches.get(cacheName);

                if ( cache != null ) {
                  cache.put(key, value);
                }
                else {
                  LOG.error( "Cache is null");
                }

您似乎忘记附上您遇到的实际错误。请提供完整的异常跟踪。

现在您可以检查 Interval class 是否实现了 Serializable。如果没有并且您无法更改它,请将编组器配置为不需要 Serializable 接口,如下所示:

<bean id="grid.cfg" class="org.gridgain.grid.GridConfiguration">
    ...

    <property name="marshaller">
        <bean class="org.gridgain.grid.marshaller.optimized.GridOptimizedMarshaller">
            <property name="requireSerializable" value="false"/>
        </bean>
    </property>

    ...
</bean>