Aew pessoal
meu sistema ta dando um excessao que nunca vi antes.
quando conecto no banco e faço uma pesquisa retornando um resultset funciona na maioria das vezes mas algumas vezes fica dando essa excessao
meu professor falou que nunca viu esta excessao
alguem sabe oque pode ser???
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 20 milliseconds ago. The last packet sent successfully to the server was 20 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1122)
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1654)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1410)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2887)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:477)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2582)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1758)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2172)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2690)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1465)
at Conexao.executeSQL(Conexao.java:62)
at GerarMapa.doPost(GerarMapa.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Stream closed.
at java.net.PlainSocketImpl.available(PlainSocketImpl.java:434)
at java.net.SocketInputStream.available(SocketInputStream.java:217)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:209)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2500)
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1635)
olha o codigo que acessa o banco e faz a query
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
imei = request.getParameter("imei");
if(imei!=null){
out = response.getWriter();
if(conexao.conecta()){
if(imei!=""){
if(conexao!=null){
conexao.executeSQL("SELECT rastreamento.latitude, rastreamento.longitude from rastreamento where imei = '"+imei+"'");
try{
if(conexao.resultset.last()){
lat = conexao.resultset.getString("latitude");
lon = conexao.resultset.getString("longitude");
out.write(lat+"!"+lon);
}
}catch(SQLException ex){
ex.printStackTrace();
} finally {
conexao.desconecta();
}
}else{
out.write("resultset = NULL");
}
}
}
}
}