My settings are Seam 2.1.1, JBoss 4.2.2, Quartz 1.6.
I am deploying a WAR (no EJB). Seam 2.1.1 works fine with this setup, but I can't invoke an asynchronous method:
@Name("previewBean") @Scope(ScopeType.PAGE)
public class PreviewBean implements Serializable {
@In ShellService service;
private FoglioCassaType foglioCassa;
@Asynchronous
public void processTotals() {
foglioCassa = service.getFoglioCassaCorrente();
}
public FoglioCassaType getFoglioCassa() {
return foglioCassa;
}
}
My Test is
@Test
public void processTotals() throws Exception {
new FacesRequest("/home.xhtml") {
@Override protected void invokeApplication() {
invokeMethod("#{previewBean.processTotals}");
}
}.run();
}
and my components.xml contains this
<async:quartz-dispatcher/>
I get a short exception (also in JBoss not only in tests):
09:41:51,062 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down. 09:41:51,062 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused. 09:41:51,062 ERROR [AsynchronousExceptionHandler] Exeception thrown whilst executing asynchronous call java.lang.NullPointerException at org.jboss.seam.async.AsynchronousInvocation$1.process(AsynchronousInvocation.java:55) at org.jboss.seam.async.Asynchronous$ContextualAsynchronousRequest.run(Asynchronous.java:80) at org.jboss.seam.async.AsynchronousInvocation.execute(AsynchronousInvocation.java:44) at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:243) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529) 09:41:51,062 INFO [QuartzScheduler] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.
Hello alberto,
Try using @Transactional above processTotals() method, may be it works