Problemas em consultas com o mysql 4

6 respostas
A

Tenho uma aplicação web que na minha maquina funciona normal, porém quando eu coloco na produção(servidor web) ele a dando problema.

é bem estranho porque ele carrega cerca de 5 ou 6 vezes a página… dai na proxima ele da erro na consulta. um dos erros é:

java.lang.NullPointerException br.com.labiomed.bd.Gerenciador.contulta(Gerenciador.java:48) br.com.labiomed.controle.ControlaTransportadoras.buscaNomeTransportadora(ControlaTransportadoras.java:38) org.apache.jsp.detalharOrcamento_jsp._jspService(detalharOrcamento_jsp.java:85) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
na minha maquina este erro nao ocorre. Gostaria de saber se alguem já teve esse tipo de problema?
uso o mysql 5 na minha maquina e o 4 no servidor.

O trexo de código indicado pelo erro é:

public String buscaNomeTransportadora(int id){ ResultSet r = null; String sql = "Select * from transportadoras where idTransportadora="+id; g.carregaDriver(); g.conecta(); r = g.contulta(sql); try { r.next(); return r.getString("Nome_transportadora"); } catch (SQLException ex) { ex.printStackTrace(); return "erro"; }
Funciona normal até certo ponto… dai da erro… em alguns instantes… eu atualizo a página e ele funciona normal.

6 Respostas

rodrigo_corinthians

try { String nomeTransportadora = null; if(r.next()){ nomeTransportadora = r.getString("Nome_transportadora"); } return nomeTransportadora; } Vê se isso não resolve.

Sem mais, Rodrigo.

A

Rodrigo o erro não esta ai, esta na linha q executa o sql que é:
[code]
r = g.contulta(sql);
[code]

rodrigo_corinthians

Bom teoricamente teria que dar erro nessa linha porq digamos q consulte por um id que não exista…

NullPointerException br.com.labiomed.controle.ControlaTransportadoras.buscaNomeTransportadora(ControlaTransportadoras.java:38) Posta o código desse método então porq provavelmente em alguma requisição ele invalida a conexão ou anula algum objeto por isso q dá esse erro, o método é singleton ou static?

A

o codigo do método consulta é:

public ResultSet contulta(String sql){ ResultSet resultado = null; try{ Statement stmt = conn.createStatement(); resultado = stmt.executeQuery(sql); } catch (SQLException ex){ ex.printStackTrace(); } return resultado; }

o curioso é que não é sempre que acontece… só depois que carrega algumas vezes a página… e so acontece no servidor.

rodrigo_corinthians

contulta(String sql){ stmt.close(); } ... rs.close();Ao término da execução usa o método close(), talvez esteja estourando o limite de conexão por isso que dá erro apenas no servidor.

ramilani12

Mas antes de tudo verifique seu metodo retornou um ResultSet isso poderia solucionar o seu problema:

public String buscaNomeTransportadora(int id){
         ResultSet r = null;
         String sql = "Select * from transportadoras where idTransportadora="+id;        
         g.carregaDriver();
         g.conecta();  
         r = g.contulta(sql);
         try 
         {
            if (r != null) 
            {   r.next();
              return r.getString("Nome_transportadora");
            }
         } catch (SQLException ex) {
             ex.printStackTrace();
             return "erro";
         }
Criado 19 de maio de 2007
Ultima resposta 20 de mai. de 2007
Respostas 6
Participantes 3