Duvida no uso Quartz como passar caminho Aplicação WEB?

2 respostas
P

Olá,

estou usando o Quartz conforme exemplo abaixo e minha dificuldade
é conseguir o caminho da aplicação na classe CLienteJob
como passar o Contexto da APlicação ou tem oura forma de fazer ???

se alguém puder me ajudar …

abs

-- a primeira vez o ServletContext 

      QuartzSingleton quartz = QuartzSingleton.getInstance();
			Scheduler quartzScheduler = null;
			try {
				quartzScheduler = quartz.getScheduler();


				} 


----
public Scheduler getScheduler() throws SchedulerException ,ImsServiceException{
		 try{
			 
			 SchedulerFactory sf = new StdSchedulerFactory();
			 sched     = sf.getScheduler();
			 sched.start();
		 }catch(Exception e){
		
		 }
		
		
	}

---

depois tenho um servico onde coloco os job pra rodar

@SuppressWarnings("static-access"){
	
		
		JobDetail jd1 = new JobDetail("ClienteJob", quartzScheduler.DEFAULT_GROUP, ClienteJob.class);
                SimpleTrigger st1 = new SimpleTrigger("SyncTrigger", quartzScheduler.DEFAULT_GROUP, new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, 6000L*1000L);

        try {
			quartzScheduler.scheduleJob(jd1, st1);

		} catch (Exception e) {

		}

	}

---
public class ClienteJob implements Job {


   public void execute(JobExecutionContext arg0) throws JobExecutionException {

   ////minha dificuldade é aqui pois tenho que pegar o caminho da APlicacao WEb
   // pra ler uns arquivos não consigo pegar via ServLet por aqui ??????????
   }


}

2 Respostas

ignacio83

Vc vai ter que abrir uma conexão HTTP para acessar servlet

a não ser que a servlet chame um método de uma classe de négocio que esteja no mesmo projeto do Job.
Se estiver bastar chamar os métodos da classe…

Explique melhor a estrutura do seu projeto;;

P

o que fiz:

  • o seguinte passei o caminho pela classe que extende Servlet
    e peguei o caminho da aplicação e passei pela variavel in_path
    e coloquei no MAP e setei a classe JobDetal e funcionou …
JobDataMap jdm = new JobDataMap();
		jdm.put("location", in_path);

		
		JobDetail jd1 = new JobDetail("CliSyncJob", quartzScheduler.DEFAULT_GROUP, CliSyncJob.class);
		jd1.setJobDataMap(jdm);
        SimpleTrigger st1 = new SimpleTrigger("CliSyncTrigger", quartzScheduler.DEFAULT_GROUP, new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, 6000L*1000L);
Criado 31 de março de 2009
Ultima resposta 31 de mar. de 2009
Respostas 2
Participantes 2