Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26

    [JAVA] errore connessione con database in applicazione client-server

    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:

    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)
    in un'altra discussione mi avete fatto notare giustamente che l'effettivo problema ce l'ho appunto in questi due pezzi di codice:
    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]);
    	}
    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) {
                            ...
    vi ho evidenziato le due righe che sono citate nell'errore.

    non riesco a capire questo errore come fare per risolverlo perchè secondo me è tutto corretto però ovviamente c'è qualche problema.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se fosse tutto corretto, funzionerebbe no?
    Ti invito a notare che è un problema di connessione non di programma java.

    Controlla innanzi tutto che il servizio database sia su (ovviamente) e che ti puoi connettere (banalmente ci sono una marea di programmini come squirrel che ti consentono di collegarti ad un database usando una comoda interfaccia grafica).

    Poi controlla che non ti blocchino dei firewall, vai a guardare le stringhe di connessione: sono giusti gli indirizzi che passi? e user e pass? e via dicendo.

    Questi controlli ti rubano un po' di tempo quindi vai e attendiamo notizie

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26
    Originariamente inviato da valia
    se fosse tutto corretto, funzionerebbe no?
    giusta osservazione.

    Originariamente inviato da valia
    Ti invito a notare che è un problema di connessione non di programma java.
    ah ecco, quindi magari potrebbe essere come dici tu che in realtà mancano i database dal quale leggere.

    Originariamente inviato da valia
    Controlla innanzi tutto che il servizio database sia su (ovviamente) e che ti puoi connettere (banalmente ci sono una marea di programmini come squirrel che ti consentono di collegarti ad un database usando una comoda interfaccia grafica).
    da quello che ho capito devo controllare se effettivamente ci siano i database. Ho provato ad accedere da linea di comando a mysql e quando mi ha chiesto la password le ho provate un po' tutte ma il programma si chiude immediatamente. ho provato "root", ho provato "password", ho provato "decTreePassword" (che sarebbe la password specificata nel file .java relativo proprio all'accesso al database) ma niente.
    il problema potrebbe essere quello.
    ho provato anche a scaricare il programmino che mi hai consigliato ma una volta installato anche cercando di far partire il file .bat o il file .jar non succede nulla.

    Originariamente inviato da valia
    Poi controlla che non ti blocchino dei firewall
    ho provato a disattivare completamente il firewall ma il problema rimane.

    Originariamente inviato da valia
    vai a guardare le stringhe di connessione: sono giusti gli indirizzi che passi? e user e pass? e via dicendo.
    purtroppo per la password ho il problema che dicevo prima, cioè secondo me dipende da quello perchè teoricamente viene inserita la password specificata nel file .java relativo all'accesso al database però quella in realtà non è la password corretta perchè ci sarà qualche problema proprio di questo tipo.

    la cosa a dire il vero mi lascia un po' con qualche dubbio visto che questo progetto fino a poco tempo fa funzionava e la password con la quale accedeva al database era sempre la stessa. ora invece non riesco più ad accedere al database neanche andando da linea di comando.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora fermati qui per il momento, se non riesci ad accedere nemmeno da riga di comando significa che il database o non esiste o in qualche modo si è corrotto.
    Riesci a ripristinarlo/ricrearlo?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26
    non riesco a ripristinarlo per il semplice motivo che non riesco neanche ad accedere. cioè per ripristinarlo dovrei poter cancellare tutte le sue tabelle e ricrearle, che poi è quello che ho cercato di fare stamattina ma appunto non mi fa neanche accedere al database.
    ho pensato addirittura di ripristinare la password e ho seguito questa guida ( http://www.sergiogandrus.it/index.ph...word-di-mysql/ ) ma mi da sempre errore.
    se avete qualche soluzione alternativa ovviamente l'accetto ben volentieri.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    26
    il progetto di cui parlavo fino ad ora oggi è stato consegnato e ovviamente il problema, come avevate anche detto voi, era mio e quindi funziona perfettamente.

    grazie lo stesso per l'aiuto che mi avete dato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.