зажечь C ++: класс сериализации не найден в хранилище кеша

Я пытаюсь использовать кэш-хранилище для сохранения. Я реализовал сериализацию определенного пользователем объекта с использованием шаблона двоичного типа. Но все же при настройке cassandra кеш-хранилища весной xml. Я получаю ошибки, такие как десериализатор не найден или идентификатор класса не найден. Я даже попробовал двоичные конфигурации, доступные в документах, но это не сработало. Может кто-нибудь помочь в решении вопроса.

КОД ОШИБКИ:

> [21:46:12,349][SEVERE][main][GridDhtAtomicCache] <cachekey> Unexpected
> exception during cache update class
> org.apache.ignite.binary.BinaryObjectException: Failed resolve class
> for ID: -1516436005   at
> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:699)
>   at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1491)
>   at
> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1450)
>   at
> org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:637)
>   at
> org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142)
>   at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinary(CacheObjectContext.java:272)
>   at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:160)
>   at
> org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:147)
>   at
> org.apache.ignite.internal.processors.cache.GridCacheContext.unwrapBinaryIfNeeded(GridCacheContext.java:1742)
>   at
> org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.put(GridCacheStoreManagerAdapter.java:566)
>   at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2507)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2479)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1881)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1721)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.mapSingle(GridNearAtomicAbstractUpdateFuture.java:263)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.map(GridNearAtomicSingleUpdateFuture.java:494)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapOnTopology(GridNearAtomicSingleUpdateFuture.java:436)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:208)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update0(GridDhtAtomicCache.java:1236)
>   at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put0(GridDhtAtomicCache.java:671)
>   at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2276)
>   at
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2253)
>   at
> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.put(IgniteCacheProxy.java:1375)
>   at
> org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutLong(PlatformCache.java:409)
>   at
> org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:61)
> Caused by: class org.apache.ignite.IgniteCheckedException: Class
> definition was not found at marshaller cache and local file.
> [id=-1516436005,
> file=/apache-ignite-fabric-1.9.0-bin/work/marshaller/-1516436005.classname]
>   at
> org.apache.ignite.internal.MarshallerContextImpl.className(MarshallerContextImpl.java:218)
>   at
> org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:174)
>   at
> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:683)

0

Решение

Вы можете установить storeKeepBinary на CacheConfiguration, если у вас есть только определение вашего класса в C ++. Кроме того, вы можете взглянуть на этот билет, как есть некоторые проблемы с магазином Cassandra. Похоже, что он находится в состоянии «Патч доступен», так что исправление скоро будет в мастере.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]