Olá,
Estou executando uma query no banco e tenho que criar a quantidade de ArrayList’s equivalente a quantas linhas minha consulta retorna. Ex: se a consulta retornar 5 linha crio 5 ArrayList’s.
Tentei fazer assim. No meu listener de contexto coloquei:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://HOST/BANCO?user=USUARIO&password=SENHA");
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select f.funcao, ft.ft from tbl_funcao f inner join tbl_ft ft order by ft.ft, f.funcao;");
int i = 0;
ArrayList<ArrayList> ListaDeListas = new ArrayList<ArrayList>();
while(rs.next()){
ListaDeListas.add(new ArrayList<String>());
context.setAttribute("logados" + rs.getNString(1) + rs.getNString(2), ListaDeListas.get(i));
i++;
}
i = 0;
ArrayList<Queue> ListaDeFilas = new ArrayList<Queue>();
while(rs.next()){
ListaDeFilas.add(new LinkedList<String>());
context.setAttribute("naFila" + rs.getNString(1) + rs.getNString(2), ListaDeFilas.get(i));
i++;
}
i = 0;
ArrayList<ArrayList> ListaDeListas2 = new ArrayList<ArrayList>();
while(rs.next()){
ListaDeListas2.add(new ArrayList());
context.setAttribute("dePausa" + rs.getNString(1) + rs.getNString(2), ListaDeListas2.get(i));
i++;
}
conn.close();
Quando tento acessar no browser o jsp que usa esses ArrayList’s, meu Filtro intercepta e gera esse de NullPointerException:
root cause
java.lang.NullPointerException
org.apache.jsp.sistema.index_jsp._jspService(index_jsp.java:161)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
FiltroSeguranca.doFilter(FiltroSeguranca.java:29)
Não sei se estou criando esses ArrayList’s da forma correta. O nome deles não importa pq jogo eles em um atributo de contexto com o nome de “logados” concatenado com a função da pessoa concatenado com o departamento dela :
context.setAttribute("logados" + rs.getNString(1) + rs.getNString(2), ListaDeListas.get(i));
e depois recupero cada ArrayList por esse atributo:
ArrayList<String> analistasLogados = (ArrayList<String>) getServletContext().getAttribute(logadosTelefonistaHospedagem);
Alguma idéia de qual é o problema?
Grato
