[16:44:49,031][SEVERE][client-connector-#72][ClientListenerNioListener] Failed to process client request [req=o.a.i.i.processors.platform.client.cache.ClientCach
eScanQueryRequest@1c37c4d2]
class org.apache.ignite.binary.BinaryInvalidTypeException: ThinClient$1
       at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:717)        at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1762)        at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1721)        at org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:820)        at org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:661)        at org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.createFilter(ClientCacheScanQueryRequest.java:117)        at org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.process(ClientCacheScanQueryRequest.java:83)        at org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:94)        at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:204)        at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:55)        at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)        at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)        at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)        at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: ThinClient$1
       at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
       at java.base/java.lang.Class.forName0(Native Method)
       at java.base/java.lang.Class.forName(Class.java:398)
       at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9064)        at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9002)        at org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:376)        at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:693)
       ... 17 more



在 2021/12/10 17:39, Pavel Tupitsyn 写道:
Thin client scan query supports any predicates.
However, make sure that predicate is deployed on all server nodes so it can be executed.

Please share the exception details.

On Fri, Dec 10, 2021 at 11:53 AM 38797715 <38797...@qq.com> wrote:

    An exception will be throw when the following code is executed:

    The ScanQuery in the thin client does not support IgniteBiPredicate?


    publicclassThinClient{
    publicstaticvoidmain(String[] args) throwsClientException, Exception{
    ClientConfigurationcfg=
    newClientConfiguration().setAddresses("localhost:10800");
    try(IgniteClientclient= Ignition.startClient(cfg)) {
    ClientCache<Integer, Person> cache2=
    client.getOrCreateCache("cache2");
    for(inti= 1; i<= 10; i++) {
    cache2.put(i, newPerson((long)i, "a", "b"));
    }
    ClientCache<BinaryObject, BinaryObject> cache3=
    client.getOrCreateCache("cache2").withKeepBinary();
    IgniteBiPredicate<BinaryObject, BinaryObject> filter=
    newIgniteBiPredicate<BinaryObject, BinaryObject>() {
    @Overridepublicbooleanapply(BinaryObjectkey, BinaryObjectperson) {
    returnperson.<Long>field("id") > 6;
    }
    };
    try(QueryCursor<Entry<BinaryObject, BinaryObject>> cur3=
    cache3.query(newScanQuery<>(filter))) {
    for(Cache.Entry<BinaryObject, BinaryObject> entry:cur3) {
    System.out.println(entry.getValue());
    }
    }
    }
    }
    }

Reply via email to