E ai galera,
Estou usando o Ajax reverso com dwr e estou com problemas com minha session. Está ficando nula quando instancio alguma classe de negócios.
Além disso estou com problemas com Lazy. A session só fica null depois que executo o start da thread.
Segue o codigo abaixo:
ServletContext servletContext = null;
HttpSession session = null;
WebContext wctx;
boolean ativo = true;
List<S> s = null;
public DWRPainel() {
WebContext wctx = WebContextFactory.get();
this.session = wctx.getSession();
this.servletContext = wctx.getServletContext();
this.wctx = wctx;
}
public void carregarPainelExibicao(String cidade) {
try {
ISBusiness sBusiness = (ISBusiness)getBusinessClass(ISBusiness.class);
this.s = sBusiness.buscarSitePorCidade(cidade);
} catch (Exception ex) {
ex.printStackTrace();
}
new Thread(this).start();
}
public void run(){
try {
Boolean ativo = new Boolean(true);
while (ativo == null || ativo.booleanValue()) {
atualizarStatusPainel();
Thread.sleep(5000);
}
} catch (IllegalStateException ex) {
System.out.println("Sessão inválida. ERRO: "+ex.getMessage());
ex.printStackTrace();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
public void atualizarStatusPainel() {
List<String> listaSites = new ArrayList<String>();
//ARQUI JÁ PERCO MINHA SESSION
Util util = new Util(wctx.getScriptSession());
util.addFunctionCall("atualizar", listaSites);
}
Alguém poderia me dizer como que eu poderia fazer para recuperar minha session após inicializar a thread?