Hi Surinder, Your tasks and nested classes should be in the class path of the server node. You can deploy them manually or automatically by means of peer-class loading [1].
1. https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading пт, 1 апр. 2022 г. в 15:12, Surinder Mehra <redni...@gmail.com>: > Hi, I am trying to return the result stream from ignite compute task. When > compute task has a map() on stream it fails with below error . Can someone > please explain. > > "Exception in thread "main" class > org.apache.ignite.binary.BinaryObjectException: Failed to deserialize > object [typeName=java.util.stream.ReferencePipeline$3]" > > Setup: One default ignite node > Compute task > client node to submit compute task and collect the stream results. > > public class StreamTask implements IgniteCallable<Stream<Department>> { > @Override > public Stream<Department> call() throws Exception { > > Function<Integer, Department> integerDepartmentFunction = i -> new > MyFunction().apply(i); > return IntStream.of(1, 2, 3).boxed().map(integerDepartmentFunction); > } > } > > class MyFunction implements Function<Integer, Department> { > @Override > public Department apply(Integer integer) { > return new Department(integer, "sdf"+ integer); > } > } > > > IgniteConfiguration cfg = new IgniteConfiguration(); > cfg.setClientMode(true); > try (Ignite ignite = Ignition.start(cfg)) { > > ClusterGroup serversGrp = ignite.cluster().forServers(); > > Stream<Department> stream = ignite.compute(serversGrp).call(new > StreamTask()); > System.out.println("Stream : "+ stream.collect(Collectors.toList())); > > } > > Error: > > Exception in thread "main" class > org.apache.ignite.binary.BinaryObjectException: Failed to deserialize object > [typeName=java.util.stream.ReferencePipeline$3] > at > org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:971) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1769) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1721) > at > org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:319) > at > org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:304) > at > org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:101) > at > org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80) > at > org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10540) > > Caused by: java.lang.ClassNotFoundException: > training.ignite.compute.StreamTask$$Lambda$894/0x0000000800670840 > 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) > >