Hi,
I saw other questions related org.apache.ignite.IgniteCheckedException:
Failed to find class with given class loader for unmarshalling (make sure
same versions of all classes are available on all nodes or enable
peer-class-loading) exception,but not find my answer.
I have one remote server node,and from local client node I discover that
server node.
Now from client node I want to create cache-
p.s. <property name="peerClassLoadingEnabled" value="true"/> added for 2
configurations
my code is following
private final CacheConfiguration<EntityIdLoader.EntityIdCacheKey,
List<Integer>> cacheConfiguration =
SpringContextHolder.applicationContext
.getBean("cacheConfigurationTemplate",
CacheConfiguration.class);
ignite.createCache((CacheConfiguration<EntityIdLoader.EntityIdCacheKey,
List<Integer>>)new
CacheConfiguration<>(cacheConfiguration).setName(CACHE_NAME)
.setReadThrough(true)
.setCacheLoaderFactory(new
EntityIdLoaderFactory())
.setExpiryPolicyFactory(EternalExpiryPolicy.factoryOf())))
public class EntityIdLoaderFactory
implements Factory<EntityIdLoader> {
private static final long serialVersionUID = 7512841233166239706L;
@Override
public EntityIdLoader create() {
return new EntityIdLoader(
() ->
SpringContextHolder.applicationContext.getBean("persistenceService",
PersistenceService.class),
() ->
SpringContextHolder.applicationContext.getBean("kbEngine",
KbEngine.class));
}
}
public class EntityIdLoader implements
CacheLoader<EntityIdLoader.EntityIdCacheKey, List<Integer>> {
@Nonnull
private final Supplier<PersistenceService> persistenceService;
@Nonnull
private final Supplier<KbEngine> kbEngine;
public EntityIdLoader(@Nonnull Supplier<PersistenceService>
persistenceService, @Nonnull Supplier<KbEngine> kbEngine) {
this.kbEngine = Preconditions.checkNotNull(kbEngine);
this.persistenceService =
Preconditions.checkNotNull(persistenceService);
}
....................................
}
during creating cache ,on remote node brings exception
class org.apache.ignite.IgniteCheckedException: Failed to find class with
given class loader for unmarshalling (make sure same versions of all classes
are available on all nodes or enable peer-class-loading):
java.net.URLClassLoader@738defde at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:108)
at
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.java:80)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.notifyDiscoveryListener(ServerImpl.java:4894)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4750)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2121)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2208)07)
at
org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Caused by: java.lang.ClassNotFoundException:
com.synisys.idm.apollo.internal.service.caching.loaders.EntityIdLoaderFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425):354)
at java.lang.Class.forName0(Native Method)ader.java:358)
at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8250)
at
org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:54)
at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)12)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1771)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at
java.lang.reflect.Method.invoke(Method.java:606)DelegatingMethodAccessorImpl.java:43)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)7)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
... 9 more
Jun 27, 2016 11:18:37 AM org.apache.ignite.logger.java.JavaLogger error
SEVERE: Failed to unmarshal discovery custom message.
class org.apache.ignite.IgniteCheckedException: Failed to find class with
given class loader for unmarshalling (make sure same versions of all classes
are available on all nodes or enable peer-class-loading):
java.net.URLClassLoader@738defde
at
org.apache.ignite.marshaller.AbstractMarshaller.unmarshal(AbstractMarshaller.java:78)
at
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCustomEventMessage.message(TcpDiscoveryCustomEventMessage.jaat
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processCustomMessage(ServerImpl.java:4768)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2121)
at
org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2208)07)
at
org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Caused by: java.lang.ClassNotFoundException:
com.synisys.idm.apollo.internal.service.caching.loaders.EntityIdLoaderFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425):354)
at java.lang.Class.forName0(Native Method)ader.java:358)
at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8250)
at
org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:54)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)0)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at
java.lang.reflect.Method.invoke(Method.java:606)DelegatingMethodAccessorImpl.java:43)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)7)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)90)
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)a:1798)
at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal(JdkMarshaller.java:102)
... 8 more
--
View this message in context:
http://apache-ignite-users.70518.x6.nabble.com/Creating-cache-with-CacheLoaderFactory-on-client-node-brings-exception-org-apache-ignite-IgniteCheck-tp5915.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.