I have created a map in Hazelcast cluster. I can see the increased count of Entries on Hazelcast management center UI for my map. On console I can also get the size using m.size command.
I know for primitive wrapper classes like Integer and String I can use m.get command to see the values for any key. I am using custom objects as key and value for map, so I am not able to use m.keys or m.values command on console.
It gives Error with HazelcastSerializationException. What should I change on Hazelcast Management center side to get data deserialized on console?
I use hazelcast version 3.8.1 and run Hazelcast Management center in mancenter directory using startManCenter.bat script.
I wonder how Hazelcast Management center will get the custom classes. Should I copy my class files or compiled jar to somewhere on Hazelcast Management center, so that it can get required classes?
Here is the log from management center console:
hazelcast[rules_cache] > m.size
Size = 7
hazelcast[rules_cache] > m.keys
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.rulemanagement.model.RuleCacheKey
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:224)
at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:184)
at com.hazelcast.client.spi.ClientProxy.toObject(ClientProxy.java:187)
at com.hazelcast.client.proxy.ClientMapProxy.keySet(ClientMapProxy.java:1047)
at com.hazelcast.client.console.ClientConsoleApp.handleMapKeys(ClientConsoleApp.java:835)
at com.hazelcast.client.console.ClientConsoleApp.handleCommand(ClientConsoleApp.java:369)
at com.hazelcast.client.console.ClientConsoleApp.start(ClientConsoleApp.java:184)
at com.hazelcast.client.console.ClientConsoleApp.main(ClientConsoleApp.java:1564)
Caused by: java.lang.ClassNotFoundException: com.rulemanagement.model.RuleCacheKey
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:149)
at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:123)
at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:522)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:219)
... 8 more
hazelcast[rules_cache] >
HazelcastSerializationException? - emre