Plugin vraptor-task

17 respostas
G

Olá,

Preciso executar uma tarefa agendada na minha aplicação do Vraptor. Vi que o projeto vraptor-task é recomendado pra isso. Mas não estou conseguindo fazer ele funcionar. Primeiro eu só adicionei o JAR dele e deu ClassNotFoundException de uma classe do Quartz. Então eu baixei e adicionei os 2 JARs da biblioteca Quartz e agora está dando o seguinte erro:

SEVERE: Exception starting filter vraptor
com.google.inject.CreationException: Guice creation errors:

1) Error in custom provider, java.lang.NullPointerException
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.Emailer
    for parameter 0 at br.com.metamorfosevirtual.components.LembreteConsulta.<init>(LembreteConsulta.java:23)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.LembreteConsulta
Caused by: java.lang.NullPointerException
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.getName(AbstractScope.java:87)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:67)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

2) Error in custom provider, java.lang.NullPointerException
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.daos.ConsultaDao
    for parameter 1 at br.com.metamorfosevirtual.components.LembreteConsulta.<init>(LembreteConsulta.java:23)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.LembreteConsulta
Caused by: java.lang.NullPointerException
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.getName(AbstractScope.java:87)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:67)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

3) Error in custom provider, java.lang.NullPointerException
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.Emailer
    for parameter 0 at br.com.metamorfosevirtual.components.LembreteConsulta.<init>(LembreteConsulta.java:23)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.LembreteConsulta
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.registerListType(GuiceComponentRegistry.java:182)
  while locating java.util.List<br.com.caelum.vraptor.tasks.Task>
    for parameter 2 at br.com.caelum.vraptor.tasks.TaskHandler.<init>(TaskHandler.java:21)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.caelum.vraptor.tasks.TaskHandler
Caused by: java.lang.NullPointerException
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.getName(AbstractScope.java:87)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:67)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
	at br.com.caelum.vraptor.ioc.guice.AllImplementationsProvider.get(AllImplementationsProvider.java:26)
	at br.com.caelum.vraptor.ioc.guice.AllImplementationsProvider.get(AllImplementationsProvider.java:13)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

4) Error in custom provider, java.lang.NullPointerException
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.daos.ConsultaDao
    for parameter 1 at br.com.metamorfosevirtual.components.LembreteConsulta.<init>(LembreteConsulta.java:23)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.metamorfosevirtual.components.LembreteConsulta
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.registerListType(GuiceComponentRegistry.java:182)
  while locating java.util.List<br.com.caelum.vraptor.tasks.Task>
    for parameter 2 at br.com.caelum.vraptor.tasks.TaskHandler.<init>(TaskHandler.java:21)
  at br.com.caelum.vraptor.ioc.guice.GuiceComponentRegistry.bindToConstructor(GuiceComponentRegistry.java:151)
  while locating br.com.caelum.vraptor.tasks.TaskHandler
Caused by: java.lang.NullPointerException
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.getName(AbstractScope.java:87)
	at br.com.caelum.vraptor.ioc.guice.AbstractScope$ScopedProvider.get(AbstractScope.java:67)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
	at br.com.caelum.vraptor.ioc.guice.AllImplementationsProvider.get(AllImplementationsProvider.java:26)
	at br.com.caelum.vraptor.ioc.guice.AllImplementationsProvider.get(AllImplementationsProvider.java:13)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:204)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:198)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:179)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

4 errors
	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:183)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
	at com.google.inject.Guice.createInjector(Guice.java:95)
	at com.google.inject.Guice.createInjector(Guice.java:83)
	at br.com.caelum.vraptor.ioc.guice.GuiceProvider.start(GuiceProvider.java:97)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
O que pode ser?

17 Respostas

Lucas_Cavalcanti

Como vc tá declarando a br.com.metamorfosevirtual.components.LembreteConsulta?

tentou colocar ela como @ApplicationScoped?

G

Sim, está assim:

@ApplicationScoped
@Scheduled(cron = "* * * 7 * ?")
public class LembreteConsulta implements Task {

	// Variáveis

	public LembreteConsulta(Emailer emailer, ConsultaDao consultaDao) {
		// Construtor
	}

	public void execute() {
		// Tarefa a ser executada
	}

}
Lucas_Cavalcanti

tenta tirar o consultaDao daí

G

Tirei tudo da classe, só pra testar:

@ApplicationScoped @Scheduled(fixedRate = 5000) public class LembreteConsulta implements Task { public void execute() { System.out.println("teste"); } }
Continua sem funcionar, mas agora tá dando a seguinte exception:

Exception in thread "Thread-2" java.lang.AbstractMethodError: br.com.caelum.vraptor.tasks.TasksMonitor.schedulerStarting()V at org.quartz.core.QuartzScheduler.notifySchedulerListenersStarting(QuartzScheduler.java:2232) at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:563) at org.quartz.core.QuartzScheduler$1.run(QuartzScheduler.java:592) at java.lang.Thread.run(Unknown Source)

Lucas_Cavalcanti

A documentação do vraptor-tasks não pediu pra vc criar alguma classe que vc não criou?

parece faltar uma classe.

vc baixou o plugin pelo maven?

G

Eu instalei o plugin manualmente. Além do jar do próprio vraptor-tasks, coloquei 2 jars do quartz (quartz e quartz-jobs).

Sobre a implementação, eu não sei muito bem porque é a primeira vez que uso o plugin. Mas pelo que eu entendi na documentação, se eu quiser apenas agendar tarefas seria só isso mesmo: https://github.com/wpivotto/vraptor-tasks

Lucas_Cavalcanti

vc usou as versões certas de cada uma dessas bibliotecas? elas podem ser encontradas aqui:

G

Hmm, era isso mesmo.
De qualquer forma, ainda tem um problema: o Vraptor não consegue injetar nenhuma das 2 dependências…

Lucas_Cavalcanti

se as dependências forem do escopo padrão (request), elas não podem ser injetadas num componente que é application scoped.

Isso pq não existe uma request na hora em que vc está executando a task, por isso o erro.

Dá uma olhada nessa seção da documentação:

isso vai resolver o seu problema.

G

Num funcionou não. Quando eu faço uma requisição não acontece nada…

Lucas_Cavalcanti

tentou habilitar o log de debug do VRaptor e do plugin, pra ver se aparece alguma informação sobre?

Criou o controller do jeito que a documentação pede, ou seja, converteu o seu componente em um @Resource?

a requisição que vc fez pra ele executou o código?

G
Lucas Cavalcanti:
tentou habilitar o log de debug do VRaptor e do plugin, pra ver se aparece alguma informação sobre?
Não tinha tentado não. Agora habilitei e vi que ele diz que a tarefa foi agendada com sucesso:
13:06:24,247 DEBUG [TaskLogger          ] Task PagesController.execute was successfully scheduled. Trigger Expression Fixed Rate: 5000
13:06:24,247 DEBUG [TaskLogger          ] Task PagesController.execute was successfully scheduled. Trigger Expression Fixed Rate: 5000
O estranho é que ele imprime isso 2 vezes...
Lucas Cavalcanti:
Criou o controller do jeito que a documentação pede, ou seja, converteu o seu componente em um @Resource?
Criei como manda a documentação. Mas lá não fala exatamente pra eu converter meu componente pra um @Resource. Diz pra usar os 2 juntos. Então ficou assim: Controller
@Resource
public class PagesController {

	...

	@Post
	@Scheduled(fixedRate = 5000)
	public void execute() {
		lembreteConsulta.execute();
	}
}
Component
@RequestScoped
public class LembreteConsulta {

	public void execute() {
		System.out.println("teste");
	}
}
Sendo que no controller eu estou injetando "LembreteConsulta".
Lucas Cavalcanti:
a requisição que vc fez pra ele executou o código?
Eu coloquei um breakpoint no método "execute" e não cai lá não. Além disso não imprime a palavra "teste".
Lucas_Cavalcanti

esse 5000 é em milisegundos?

vc chegou a fazer o POST pra essa url?

será que não tem que ser GET?

G

Pelo menos no outro exemplo, quando consegui fazer funcionar, era em milisegundos. De qualquer forma, reduzi ele pra 5 e continua a mesma coisa.

Agora fiz, usando o curl. Mas também não funcionou. Cai no método certinho, mas não agenda nada.

Tentei Get também e deu na mesma.

Lucas_Cavalcanti

Abre uma issue lá no github do plugin e vê se o wpivotto responde… se tá assim na documentação, deveria funcionar =/

G

Issue criada: https://github.com/wpivotto/vraptor-tasks/issues/11

G

Problema resolvido. Estavam faltando algumas libs que o projeto usa. O estranho é que, mesmo sem as libs, não estava dando ClassNotFoundException ou algo do gênero.

Criado 3 de março de 2014
Ultima resposta 10 de mar. de 2014
Respostas 17
Participantes 2