[Resolvido!] Executar uma tarefa do Quartz ao levantar o tomcat

1 resposta
Kleber-rr

Olá membros do GUJ.

Estou estudando a API do Quartz para execução de tarefas em determinado tempo. Seguindo os exemplos da net, consegui fazer funcionar o mais básico possível (exibir uma mensagem). Entretanto, deparei-me com a seguinte situação:

Preciso executar a classe que possui a tarefa ao levantar o Tomcat, sendo que eu já utilizo a servlet do Faces (Faces Servlet);

Mapeei a classe que possui o método Job no web.xml, porém, na hora de subir a aplicação, me vem este retorno no console:

INFO: Marking servlet Quartz as unavailable 23/05/2011 11:56:40 org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /segias threw load() exception java.lang.ClassCastException: br.gov.rr.setrabes.tarefa.ExecTarefa cannot be cast to javax.servlet.Servlet at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1115) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

No web.xml está assim:

<servlet> <servlet-name>Quartz</servlet-name> <servlet-class>br.gov.rr.setrabes.tarefa.ExecTarefa</servlet-class> <load-on-startup>2</load-on-startup> </servlet>

A quem puder contribuir, agradeço.

1 Resposta

Kleber-rr

Pessoal, resolvi.

Foi vacilo meu. Eu não tinha implementado os métodos de Servlet, então ele nunca iria conseguir fazer um cast.

Fiz essa correção e funcionou.

Desculpa o vacilo.
Valeu pela paciência.
Abs.

Criado 23 de maio de 2011
Ultima resposta 23 de mai. de 2011
Respostas 1
Participantes 1