jeudi 12 mars 2015

Spring TaskScheduler Bean not injected

I need to schedule a job when the a session is created. So I created my HttpSessionListener :



@Component
public class WebSessionListener implements HttpSessionListener {

//@Autowired
@Qualifier(value = "taskScheduler")
private ThreadPoolTaskScheduler taskScheduler;
@Autowired
private PanierService panierService;

//Notification that a session was created.
@Override
public void sessionCreated(HttpSessionEvent httpSessionCreatedEvent) {

Runnable viderPanier20mnJob = PanierJobs.getViderPanier20mnJob(httpSessionCreatedEvent.getSession());
taskScheduler.schedule(viderPanier20mnJob, PanierJobs.getNextDateTime());
System.out.println("Session Created Called! -----------------------");
}


But my big problem here is that my TaskScheduler bean is not injected (NoSuchBeanDefinition or sometimes it just pops a NullPointerException).


Here is my TaskScheduler (taken from an example where it was working) :



@Configuration
@EnableScheduling
@EnableAsync
public class JobSchedulingConfig{

@Bean
public ThreadPoolTaskExecutor taskExecutor() {

ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
return executor;
}

@Bean
public ThreadPoolTaskScheduler taskScheduler() {

ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
return scheduler;
}
}

Aucun commentaire:

Enregistrer un commentaire