I'm using this hazelcast quartz scheduler JobStore for scheduling background jobs. I am using:
- quartz: 2.2.3
- Hazelcast: 3.7.2 (running in a docker container with default configuration)
- Hazelcast-client: 3.7.2
When adding a new trigger to the hazelcast-quartz scheduler, I get the following exception on the hazelcast instance:
[3.7.2] java.lang.ClassNotFoundException: com.bikeemotion.quartz.jobstore.hazelcast.TriggerWrapper com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.bikeemotion.quartz.jobstore.hazelcast.TriggerWrapper at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:224) at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:46) at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:172) at com.hazelcast.map.impl.record.Records.tryStoreIntoCache(Records.java:149) at com.hazelcast.map.impl.record.Records.getValueOrCachedValue(Records.java:118) at com.hazelcast.map.impl.recordstore.AbstractRecordStore.saveIndex(AbstractRecordStore.java:146) at com.hazelcast.map.impl.recordstore.DefaultRecordStore.putInternal(DefaultRecordStore.java:741) at com.hazelcast.map.impl.recordstore.DefaultRecordStore.set(DefaultRecordStore.java:919) at com.hazelcast.map.impl.operation.SetOperation.run(SetOperation.java:44) at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:181) at com.hazelcast.spi.impl.operationexecutor.impl.OperationExecutorImpl.run(OperationExecutorImpl.java:375) at com.hazelcast.spi.impl.operationexecutor.impl.OperationExecutorImpl.runOrExecute(OperationExecutorImpl.java:402) at com.hazelcast.spi.impl.operationservice.impl.Invocation.doInvokeLocal(Invocation.java:283) at com.hazelcast.spi.impl.operationservice.impl.Invocation.doInvoke(Invocation.java:268) at com.hazelcast.spi.impl.operationservice.impl.Invocation.invoke0(Invocation.java:232) at com.hazelcast.spi.impl.operationservice.impl.Invocation.invoke(Invocation.java:207) at com.hazelcast.spi.impl.operationservice.impl.InvocationBuilderImpl.invoke(InvocationBuilderImpl.java:59) at com.hazelcast.client.impl.protocol.task.AbstractPartitionMessageTask.processMessage(AbstractPartitionMessageTask.java:64) at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.initializeAndProcessMessage(AbstractMessageTask.java:119) at com.hazelcast.client.impl.protocol.task.AbstractMessageTask.run(AbstractMessageTask.java:99) at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:137) at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:127) at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:102) Caused by: java.lang.ClassNotFoundException: com.bikeemotion.quartz.jobstore.hazelcast.TriggerWrapper at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at com.hazelcast.nio.ClassLoaderUtil.tryLoadClass(ClassLoaderUtil.java:151) at com.hazelcast.nio.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:120) at com.hazelcast.nio.IOUtil$ClassLoaderAwareObjectInputStream.resolveClass(IOUtil.java:358) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1779) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:219) ... 22 more
Any thoughts on what could be the issue? I'd really hate to have to have the hazelcast instance be aware of the hazelcast jobstore package. Should be able to store the trigger without having to deserialize it on hazelcast instance.