抑制的 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>
我试图将一个键作为 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>