Olá,
Preciso fazer um classe, que rode a cada minuto para verificar uns dados no banco de dados.
Estou usando Timer e Timer Task para fazer isso.
Mas acontece um erro. vou mostrar o cenario abaixo.
BloqueioAcessoUsuario.javaimport java.util.Timer;
import java.util.TimerTask;
import br.com.vetoreditora.psiconline.dao.UserDao;
import br.com.vetoreditora.psiconline.models.Usuario;
@SuppressWarnings("unused")
public class BloqueioAcessoUsuario {
public static long TEMPO = (1000 * 60);
public static void main(String[] args) {
Timer timer = null;
if (timer == null) {
timer = new Timer();
TimerTask tarefa = new TimerTask() {
@SuppressWarnings("null")
public void run() {
try {
UserDao userDao = null;
Long id = 4L;
userDao.updateByRole(id);
System.out.println("USUARIO BLOQUEADO POR TEMPO EXPIRADO!");
} catch (Exception e) {
e.printStackTrace();
}
}
};
timer.scheduleAtFixedRate(tarefa, TEMPO, TEMPO);
}
}
}
public class UserDaoHibernate extends GenericDaoHibernate<Usuario, Long>
implements UserDao {
final Logger logger = LoggerFactory.getLogger(GenericDaoHibernate.class);
protected Class<Usuario> persistentClass;
@SuppressWarnings("unchecked")
public UserDaoHibernate() {
logger.debug("Iniciando DAO Genérico \"GenericDaoHibernate()\"...");
persistentClass = (Class<Usuario>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
public UserDaoHibernate(final Class<Usuario> persistentClass) {
logger.debug("Iniciando DAO Genérico \"GenericDaoHibernate"
+ "(Class<T>)\"...");
this.persistentClass = persistentClass;
}
public void updateByRole(Long id) throws DataAccessException {
try {
getHibernateTemplate().update("String de update que estou usando", id);
} catch (Exception e) {
System.out.println(e);
}
logger
.debug("Entidade [{}] removida através da chave primária [{}]");
}
}
O erro é este:
java.lang.NullPointerException
at br.com.vetoreditora.psiconline.web.BloqueioAcessoUsuario$1.run(BloqueioAcessoUsuario.java:29)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Tentei algumas outras formas, mas nao obtive sucesso.
Obrigado desde já

