Está dando erro na sequinte situação:
Tenho a classe MyFirstApplicationTask:
@Component
@ApplicationScoped
public class MyFirstApplicationTask implements ApplicationTask {
private News news;
public MyFirstApplicationTask(TaskScheduler scheduler, News news) {
this.schedule(scheduler);
this.news = news;
}
public void schedule(TaskScheduler scheduler) {
//scheduler.schedule(this, new CronTrigger("0 0/2 * * * ?"));
scheduler.schedule(this, new CronTrigger("0 15 10 ? * *"));
}
public void run(){
news.enviar();
}
}
Tenho a classe News:
@Component
@PrototypeScoped
public class News {
private Imagens imagens;
private ParameterLoader parameterLoader;
public News(ParameterLoader parameterLoader,Imagens imagens ) {
this.imagens = imagens;
this.parameterLoader = parameterLoader;
}
// codigo aqui
}
E tenho a classe ParameterLoader, que carrega uma classe PropertiesLoader, que faz a leitura de um arquivo param.properties, fiz isso para poder alterar parâmetros em arquivo de texto e não direto na classe, como a conta de email, senha e smtp para enviar o email, dica bastante útil do nosso colega Bronx.
@Component
public class ParameterLoader {
private final String PROPERTIES_NAME = "param.properties";
private PropertiesLoader propertiesLoader;
public ParameterLoader(ServletContext servletContext) {
try {
this.propertiesLoader = new PropertiesLoader(new FileInputStream(new File(servletContext.getRealPath("/WEB-INF/properties/" + this.PROPERTIES_NAME))));
} catch (Exception exception) {
throw new RuntimeException(exception);
}
}
public String getParameter(String parameterName) {
return this.propertiesLoader.getValue(parameterName);
}
}
Aí já não sei se está faltando alguma anotação em alguém ou se está sobrando, tentei adicionar @PrototypeScoped na ParameterLoader, mas não deu certo.
[]s