我试图将一个键作为String,值作为List Intervals>在缓存中,我收到以下错误。我在dao中有一个put方法,如object,object>所以它可以用于差异缓存
输入
[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");
}
答案 0 :(得分:1)
看起来你忘了附上你得到的实际错误。请提供完整的例外跟踪。
现在您可以检查Interval
类是否实现了Serializable
。如果它没有并且您无法更改它,请将marshaller配置为不需要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>