Hello,
I have created a scheduled job to run at certain time. The job calls my service which I define as the followoing: <service name="AutoNotificationCertificateExpiry" engine="groovy" location="component://order/webapp/ordermgr/order/RunAutoNotification.groovy" invoke=""> <description>Auto-notification Certificate Expiry</description> </service> RunAutoNotification.groovy is as follows (omitting the import): try { AutoNotification notification = new AutoNotification(delegator, dispatcher); notification.notifyUsersOfExpiringCertificate(); return "success" } catch (Exception e) { Debug.logError(e, "error", "RunAutoNotification.groovy"); return "error" } I noticed that during OFBIZ startup, the job is called. However, I got the following error: groovy.lang.MissingPropertyException: No such property: delegator for class: RunAutoNotification org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50) org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getGroovyObjectProperty(ScriptBytecodeAdapter.java:537) RunAutoNotification.run(RunAutoNotification.groovy:7) org.ofbiz.base.util.GroovyUtil.runScriptAtLocation(GroovyUtil.java:117) org.ofbiz.service.engine.GroovyEngine.serviceInvoker(GroovyEngine.java:64) org.ofbiz.service.engine.GroovyEngine.runSync(GroovyEngine.java:52) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:390) org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:219) org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:159) org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java:69) org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:241) java.lang.Thread.run(Unknown Source) Looking at the error log, I guess "delegator" cannot be found. I just wonder how I can get a reference of delegator and dispatcher to pass to groovy for scheduled job. The code runs fine if I called it from a web page. Your kind advice is appreciated. Thank you. |
You can get the delegator from the dispatch context, which is
populated in the binding for groovy services as "dctx". delegator = dctx.getDelegator(); // add to RunAutoNotification.groovy On Apr 6, 2010, at 7:06 AM, Koon Sang wrote: > > Hello, > > I have created a scheduled job to run at certain time. The job > calls my > service which I define as the followoing: > > <service name="AutoNotificationCertificateExpiry" engine="groovy" > location="component://order/webapp/ordermgr/order/ > RunAutoNotification.groovy" > invoke=""> > <description>Auto-notification Certificate Expiry</description> > </service> > > > RunAutoNotification.groovy is as follows (omitting the import): > > try > { > AutoNotification notification = new AutoNotification(delegator, > dispatcher); > notification.notifyUsersOfExpiringCertificate(); > > return "success" > } > catch (Exception e) > { > Debug.logError(e, "error", "RunAutoNotification.groovy"); > return "error" > } > > > I noticed that during OFBIZ startup, the job is called. However, I > got the > following error: > > groovy.lang.MissingPropertyException: No such property: delegator > for class: > RunAutoNotification > org > .codehaus > .groovy > .runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50) > org > .codehaus > .groovy > .runtime > .ScriptBytecodeAdapter > .getGroovyObjectProperty(ScriptBytecodeAdapter.java:537) > RunAutoNotification.run(RunAutoNotification.groovy:7) > org.ofbiz.base.util.GroovyUtil.runScriptAtLocation(GroovyUtil.java: > 117) > org > .ofbiz.service.engine.GroovyEngine.serviceInvoker(GroovyEngine.java: > 64) > org.ofbiz.service.engine.GroovyEngine.runSync(GroovyEngine.java:52) > org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java: > 390) > org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java: > 219) > org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java: > 159) > org.ofbiz.service.job.GenericServiceJob.exec(GenericServiceJob.java: > 69) > org.ofbiz.service.job.JobInvoker.run(JobInvoker.java:241) > java.lang.Thread.run(Unknown Source) > > > Looking at the error log, I guess "delegator" cannot be found. I just > wonder how I can get a reference of delegator and dispatcher to pass > to > groovy for scheduled job. The code runs fine if I called it from a > web > page. > > Your kind advice is appreciated. > Thank you. > > -- > View this message in context: http://n4.nabble.com/Calling-groovy-from-scheduled-job-OFVIZ-9-04-tp1752673p1752673.html > Sent from the OFBiz - User mailing list archive at Nabble.com. smime.p7s (5K) Download Attachment |
Free forum by Nabble | Edit this page |