I have a job that runs on the hour. I would like to either call a Controller's Action method like this:
public class MyJob extends Job {
@Override
public void doJob() throws Exception {
MyController.someActionMethod();
}
}
or call a URL directly.
Any ideas if this is possible from within a Job?
If I call a Controller's action method directly, I get this:
NullPointerException occured : null
play.exceptions.JavaExecutionException
at play.jobs.Job.call(Job.java:155)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at play.classloading.enhancers.ControllersEnhancer$ControllerInstrumentation.isActionCallAllowed(ControllersEnhancer.java:187)
at controllers.MyController.someActionMethod(MyController.java)
at fun.job.MyJob.doJob(MyJob.java:10)
at play.jobs.Job.doJobWithResult(Job.java:50)
at play.jobs.Job.call(Job.java:146)
... 7 more