0

Web アプリケーションがデータを取得するために Hazelcast キャッシュにクエリを実行しているときに、HazelcastSerializationException がスローされるという問題に直面しています。hazelcast-all-3.6.6.jar を使用しています。

以下は、サーバー ログから収集された同じスタック トレースです。

java.util.concurrent.ExecutionException: com.hazelcast.nio.serialization.HazelcastSerializationException: com.hazelcast.internal.serialization.impl.ArrayDataSerializableFactory@5e5caba is not be able to create an instance for id: 100 on
factoryId: -32
        at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveApplicationResponseOrThrowException(InvocationFuture.java:360) ~[hazelcast-all-3.6.6.jar!/:3.6.6]
        at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.get(InvocationFuture.java:225) ~[hazelcast-all-3.6.6.jar!/:3.6.6]
        at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.get(InvocationFuture.java:204) ~[hazelcast-all-3.6.6.jar!/:3.6.6]
        at com.hazelcast.map.impl.query.MapQueryEngineImpl.addResultsOfPagingPredicate(MapQueryEngineImpl.java:503) ~[hazelcast-all-3.6.6.jar!/:3.6.6]
        at com.hazelcast.map.impl.query.MapQueryEngineImpl.queryAllPartitionsWithPagingPredicate(MapQueryEngineImpl.java:388) ~[hazelcast-all-3.6.6.jar!/:3.6.6]
        at com.hazelcast.map.impl.proxy.MapProxyImpl.values(MapProxyImpl.java:635) [hazelcast-all-3.6.6.jar!/:3.6.6]

この例外は、QueryResultRow を取得した後、シリアル化に失敗する Hazelcast クラスにあります。以下は、正確に失敗した場合のコード スニペットです。

QueryResultRow row = (QueryResultRow)i$1.next();
Object key = this.toObject(row.getKey());
Object value = this.toObject(row.getValue());

以下は toObject() メソッドの実装です。

protected Object toObject(Object obj) {
   return this.serializationService.toObject(obj);
}
4

0 に答える 0