Servlete chamando ela mesmo

11 respostas
R

Bom dia amigos, Amigos estou com um pekeno problema,

Tenho uma servlete preciso chamar ela mesmo em um determinado tempo…

a duvida e como faço para chamar ela mesmo?

Obrigado.

public class testar extends HttpServlet {

# CONTEUDO

}

11 Respostas

A

Rodrigo.Mlechior:
Bom dia amigos, Amigos estou com um pekeno problema,

Tenho uma servlete preciso chamar ela mesmo em um determinado tempo…

a duvida e como faço para chamar ela mesmo?

Obrigado.

public class testar extends HttpServlet {

# CONTEUDO

}

</blockquote>

Qual é a regra de negócio/o serviço que a servlet iria fazer/a idéia de querer implementar isso?

gilmaslima

Talvez vc consiga oque esta querendo com algum tipo de Listener…

R

Grande Andre,

Andre amigão, a regra de negocio da minha servlet e o seguinte ela faz um teste em serviço e gera um log se está Ok ou não, so que essa servlet precisa testar esse serviço em 10 em 10 minutos, eu tinha começado fazer em javascript so que depois eu lembrei que para funcionar como JSP,jacavascript o browser teria que esta aberto o tempo todo, então não seria uma boa solução, entao eu quero fazer que essa

aeciovc
while (true){

//Espera 10 Minutos
response.sendRedirect("/MinhaServlet");

}

crie uma classe Java simples (método main), onde você poderá iniciá-la como serviço.

DOS > java MinhaClasse

R

Humm legal,tinha penssado em algo parecido, mais o desafio e, colocar essa servlet no servidor e ela mesmo fica se executando…

entao porisso que durgiu a ideia da servlet chamar ela mesmo. pq ela no servidor consegueria se executar sozinha certo?

Cristiano_de_Barros

Bom dia!

Eu acredito que seria interessante realizar estes testes em uma outra classe que não fosse um servlet, pois a função de um servlet é, basicamente, receber requisições e produzir suas respostas. A idéia de um servlet chamar a si mesmo em um intervalo de tempo é bastante estranha.
Além disto, se você realizar estes testes em uma classe separada, você evitará a criação de uma classe faz-de-tudo, e estará dividindo as responsabilidades entre as classes, o que é essencial na orientação a objetos.

Espero ter ajudado!
:wink:

R

entao amigo, o problema e fazer essa servlet fica rodando sozinha, se eu criar uma classe nao teria como fazer ela fica rodando sozinha certo?

obrigado a todos que estao ajudando

paulo1911

Olá amigo Rodrigo.Mlechior,

você pode fazer a servlet chamar ela mesmo, inclusive passando o mesmo request veja:

resquest.getRequestDispatcher("/SeuServlet.do").forward(request,response);

Espero ter ajudado
Fallow

Cristiano_de_Barros

Teria como fazer sim, existem bibliotecas para realizar requisições web, um exemplo é a HttpClient da Apache.
Com ela, você pode realizar requisições para a URL do seu servlet, adicionar parâmetros a sua requisição, receber a resposta, tudo de maneira simples.
A única questão que faltou, é a realização desta chamada em intervalos de tempo de 10 minutos, para esta questão você pode utilizar a classe Timer (java.util.Timer), que o próprio java lhe oferece.

Espero ter ajudado!
:wink:

R

Muito ogrigado amigos, vou estudar aqui a melhor solução e testar,

quando resolver meu problema aviso aqui qual que escolhe,…

se alguem tiver mais ideias pode ficar avontade…

R

Boa tarde amigos,

Amigos consegue, muito obrigado pala ajuda que vcs me deram…

vou mostrar a solução que encontrei

public class ExecutarTeste extends HttpServlet {

#Conteudo
#Conteudo
#Conteudo
#Conteudo
#Conteudo
#Conteudo

	Timer timer = new Timer();   
				timer.schedule(new TimerTask() {   
				      
				   @Override  
				   public void run() {
					   try {						  
						   ExecutarTeste execut =new ExecutarTeste();
						   execut.doService(request, response);					
					} catch (ServletException e) {						
						e.printStackTrace();
					} catch (IOException e) {						
						e.printStackTrace();
				     }				       
				      cancel();   
				         }   
				}, 100000);
Criado 12 de abril de 2011
Ultima resposta 13 de abr. de 2011
Respostas 11
Participantes 6