0 Usuarios y 7 Visitantes están viendo este tema.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureLast packet sent to the server was 31 ms 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:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2985) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2871) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3414) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485) at Classes.Conexion.ejecutarSQL(Conexion.java:66) at osceswebapp.FormNuevo.guardarDatos(FormNuevo.java:1752) at osceswebapp.FormNuevo.btnNuevoActionPerformed(FormNuevo.java:1320) at osceswebapp.FormNuevo.access$4100(FormNuevo.java:38) at osceswebapp.FormNuevo$39.actionPerformed(FormNuevo.java:974) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2431) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2882) ... 36 more
Pasa el codigo que tira exception y donde configuras la conexión
package Classes;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * * @author monillo007 */public class Conexion { private Connection conexion; /** Creates a new instance of Conexion */ public Conexion() { } /** * M�todo utilizado para recuperar el valor del atributo conexion *@return conexion contiene el estado de la conexi�n * */ public Connection getConexion() { return conexion; } /** * M�todo utilizado para establecer la conexi�n con la base de datos *@return estado regresa el estado de la conexi�n, true si se estableci� la conexi�n, * falso en caso contrario */ public boolean crearConexion(String db, String user, String pass) { try { Class.forName("com.mysql.jdbc.Driver"); conexion = DriverManager.getConnection(db,user,pass); } catch (SQLException ex) { ex.printStackTrace(); return false; } catch (ClassNotFoundException ex) { ex.printStackTrace(); return false; } return true; } /** * *M�todo utilizado para realizar las instrucciones: INSERT, DELETE y UPDATE *@param sql Cadena que contiene la instrucci�n SQL a ejecutar *@return estado regresa el estado de la ejecuci�n, true(�xito) o false(error) * */ public boolean ejecutarSQL(String sql) { try { Statement sentencia = conexion.createStatement(); sentencia.executeUpdate(sql); } catch (SQLException ex) { ex.printStackTrace(); return false; } return true; } /** * *M�todo utilizado para realizar la instrucci�n SELECT *@param sql Cadena que contiene la instrucci�n SQL a ejecutar *@return resultado regresa los registros generados por la consulta * */ public ResultSet ejecutarSQLSelect(String sql) { ResultSet resultado; try { Statement sentencia = conexion.createStatement(); resultado = sentencia.executeQuery(sql); } catch (SQLException ex) { ex.printStackTrace(); return null; } return resultado; } }
public class FormNuevo extends javax.swing.JApplet { Conexion conexion; String db = "jdbc:mysql://profcomp.com:3306/profcomp_osces"; String user = "user"; String pass = "pass"; String operacionRealizar; //Indicará el tipo de operación que se realizará //al guardar datos: Insert, Update, Cancelar, etc. //Dicho string se asignará al momento de presionar //algún botón. public FormNuevo (){ //this.setExtendedState(this.MAXIMIZED_BOTH); conexion = new Conexion(); conexion.crearConexion(db,user,pass); try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } }}
private void guardarDatos(){ conexion.ejecutarSQL(sql);}
Hace un ping al server haber sino tenes packet loss.
Microsoft Windows XP [Versión 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.I:\Documents and Settings\Gilberto Rodas (Jr.)>ping profcomp.comHaciendo ping a profcomp.com [74.54.176.162] con 32 bytes de datos:Respuesta desde 74.54.176.162: bytes=32 tiempo=177ms TTL=47Respuesta desde 74.54.176.162: bytes=32 tiempo=155ms TTL=47Respuesta desde 74.54.176.162: bytes=32 tiempo=154ms TTL=47Respuesta desde 74.54.176.162: bytes=32 tiempo=143ms TTL=47Estadísticas de ping para 74.54.176.162: Paquetes: enviados = 4, recibidos = 4, perdidos = 0 (0% perdidos),Tiempos aproximados de ida y vuelta en milisegundos: Mínimo = 143ms, Máximo = 177ms, Media = 157msI:\Documents and Settings\Gilberto Rodas (Jr.)>
Ejecuta otra consulta que tengas pero con el mismo formulario.
El problema que tienes es porque ese servidor a veces no deja pasar las autenticaciones a otros servidores de mysqlproba con localhost, subi tú archivo al host y desde el host proba, pero no pongas la url de mysql, pone localhost.String db = "jdbc:mysql://localhost:3306/profcomp_osces";
<applet code="osceswebapp.FormNuevo" archive="OscesWebapp.jar" width="850" height="700"></applet>
subilo todo a otra carpeta aparte, nos contas que paso.
Class.forName("com.mysql.jdbc.Driver");