come da titolo ho problemi nella connessione con il database nella mia applicazione clienti-server.
cioè, il client si collega al server e fa alcune richieste inerenti al database. quindi il server viene avviato correttamente, il client anche però poi si verifica un problema proprio nella connessione con il database.
l'errore che si presenta è il seguente:
in un'altra discussione mi avete fatto notare giustamente che l'effettivo problema ce l'ho appunto in questi due pezzi di codice:codice:Server avviato connessione Stabilita col client Nuovo client connesso impossibile connetersi al DB com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2120) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at classificator.database.DbAccess.initConnection(DbAccess.java:62) at classificator.database.DbAccess.getConnection(DbAccess.java:76) at classificator.database.TableData.tabelledb(TableData.java:150) at classificator.server.ServerOneClient.run(ServerOneClient.java:71) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2043) ... 15 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284) ... 16 more Exception in thread "Thread-1" java.lang.NullPointerException at classificator.database.TableData.tabelledb(TableData.java:151) at classificator.server.ServerOneClient.run(ServerOneClient.java:71)
codice:static public String[] tabelledb ()throws SQLException { Connection con=DbAccess.getConnection(); DatabaseMetaData meta = con.getMetaData(); List<String> tabelle=new ArrayList<String>(); ResultSet res = meta.getTables(null, null, null,new String[]{"TABLE"}); while (res.next()) { tabelle.add(new String(res.getString("TABLE_NAME"))); } res.close(); return tabelle.toArray(new String[0]); }vi ho evidenziato le due righe che sono citate nell'errore.codice:public void run() { System.out.println("Nuovo client connesso"); String[] v; try { try{ v=TableData.tabelledb(); out.writeObject(v); } catch (IOException e) { System.out.println(e); } catch (SQLException e) { System.out.println(e); } while (true) { ...
non riesco a capire questo errore come fare per risolverlo perchè secondo me è tutto corretto però ovviamente c'è qualche problema.

Rispondi quotando