Кварцевые и нестандартные сервисы для складов с Hazelcast ClassNotFoundException

Я использую servicemix с кварцем и RAMJobStore по умолчанию. Поскольку у нас есть кластер, мы хотим использовать Hazelcast, и мы сделали HazelcastJobStore. Я меняю это свойство

org.quartz.jobStore.class =

поставить свой пользовательский склад, но в servicemix, когда я делаю:

scheduler = schedulerFactory.getScheduler()

я получил эту ошибку

Caused by: org.quartz.SchedulerException: JobStore class 'com.sncf.canaltrain.transverse.jobStore.hazelcast.HazelCastJobStore' could not be instantiated. [See nested exception: java.lang.ClassNotFoundException: com.sncf.canaltrain.transverse.jobStore.hazelcast.HazelCastJobStore]
    at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:852)
    at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1525)
    at com.sncf.canaltrain.transverse.scheduler.SchedulerService.startScheduler(SchedulerService.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71]
    at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71]
    at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:297)[18:org.apache.aries.blueprint.core:1.4.3]
    at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:958)[18:org.apache.aries.blueprint.core:1.4.3]
    at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:712)[18:org.apache.aries.blueprint.core:1.4.3]
    ... 54 more
Caused by: java.lang.ClassNotFoundException: com.sncf.canaltrain.transverse.jobStore.hazelcast.HazelCastJobStore

я вижу, что класс, который пытается создать экземпляр хранилища:

String classLoadHelperClass = this.cfg.getStringProperty("org.quartz.scheduler.classLoadHelper.class", "org.quartz.simpl.CascadingClassLoadHelper");

это было значение по умолчанию, но я думаю, что в servicmix это не правильно...

существует ли что-то, что я могу сделать, чтобы устранить эту ошибку пути к классам? или мне нужно реализовать свой собственный classLoadHelper и попытаться использовать osgi classthpath, чтобы найти мой класс?

Спасибо!

1 ответ

Решение

Наконец я нашел решение,

Я использую фрагмент, чтобы добавить свой customJobStore, и с фрагментом, хост (кварц) правильно находит мое хранилище заданий, и все работает нормально!

если это может помочь;)

Другие вопросы по тегам