Show!
Você esta tentando enviar email também?
Show!
Você esta tentando enviar email também?
Sim, mas eu estou utilizando um webService próprio da empresa.
Eu estava tentando enviar um e-mail mas não consegui e fui programar outra coisa
No meu projeto está dando um alerta para eu usar o persistent dentro do parênteses do @Schedule… Isso irá alterar o funcionamento ?
Esta dizendo para remover o final não? Pode remover
O método funciona com final, sem final ou sem parametro, mas se tiver paramentro, tem que ser javax.ejb.Timer
Eu fiquei sem entender o porque daquela variável também, já que ela não é utilizada.
Vou retirar então.
Aqui ele comenta para pôr o código dessa forma:
@Schedule(hour="8", minute="15", dayOfMonth="28", month="3", year="2018", info="MyTimer", persistent = false)
private void scheduledTimeout(final Timer t) {
JOptionPane.showMessageDialog(null, "Deu certo!");
}
Mas seu eu pôr assim irá trazer algum erro ?
Só você para dizer
Eu utilizo eclipse e ele não me da nenhum warning.
A documentação diz: "Specifies whether the timer that is created is persistent."
Nunca utilizei o atributo persistent, mas eu acho que não dará problema algum
@Mike
Ok… Entendi, já criei a classe para testar, mas não executa quando dá a hora!
Como você criou a sua classe ? Desculpe tantas perguntas!!
Assim:
@Singleton
public class ClasseEJB {
Classe classe = new classe();
@Schedule(hour="23", minute="30", dayOfWeek="*", info="MyTimer")
private void scheduledTimeout(Timer t) {
classe.metodo();
}
}
Qual é a versão da java EE utilizada no seu projeto ?
Java EE 7 + Glassfish 4.0
Estou usando o Java EE 7 + Apache Tomcat 8.0.27.0, mas ainda não funcionou haha
No Tomcat EJB não funciona
Tomcat é um container, para rodar EJB tem que ser servidor de aplicação.
E existe algum que funcione no tomcat ? Que você conheça claro
Eu só fiz do jeito acima.
Uma outra solução seria criar uma Thread, executar um metodo nela e bota-la pra dormir por um tempo, ai quando acordar, executa de novo o metodo.
Certo… Obrigado pela ajuda!
Se não me engano, tem uma classe de Thread que executa métodos em um determinado intervalo, mas não sei exatamente qual é, talvez TimerTask (como o nome diz) ou ExecutorService, mas eu apostaria no primeiro
Vou procurar sobre isso entao!
Código que utilizei:
public static void executa() {
long TEMPO = (1000 * 60);//verifica a cada 1 minuto
Timer timer = new Timer();
TimerTask tarefa = new TimerTask() {
public void run() {
//Colocar aqui o código
}
};
timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO);
}