0

Ich benutze Servicemix mit Quarz und Standard RAMJobStore. Weil wir Cluster haben wollen wir Haselnuss verwenden und wir haben HazelcastJobStore gemacht. Ich ändere diese propertieQuarz und benutzerdefinierte Jobstore servicemix mit Haselnuss ClassNotFoundException

org.quartz.jobStore.class = 

meine Gewohnheit jobstore zu setzen, aber in ServiceMix, wenn ich tun:

scheduler = schedulerFactory.getScheduler() 

ich diese Fehlermeldung bekam

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 

ich sehe, dass die Klasse, die versuchen, instanziieren Der Jobspeicher ist:

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

es war der Standardwert, aber ich denke in servicmix ist es nicht korrekt ...

existiert etwas, was ich tun kann, um diesen Klassenpfadfehler zu beheben? Oder muss ich meinen eigenen classLoadHelper implementieren und versuchen, mit osgi classthpath meine Klasse zu finden?

danke!

Antwort

0

Schließlich fand ich eine Lösung,

i-Fragment verwenden, um meine customJobStore hinzuzufügen und mit dem Fragment, der Wirt (Quarz) finden meine jobstore richtig und alle Arbeiten gut!

wenn es helfen kann;)

Verwandte Themen