PDA

View Full Version : [JAVA] Web Start e Connessione Database remoto


sonic85
23-12-2009, 10:36
ciao a tutti, nel mio progetto ho trovato un'altro problema... ho sviluppato una applicazione java web start e ora vorrei collegarmi ad un database remoto on-line... io avevo impostato la connessione creando una classe per la gestione del database come se fosse un'applicazione standalone mettendo però i dati relativi sull'host remoto.


public class GestioneDB {
private String nomeDB; // Nome del Database a cui connettersi
private String nomeUtente; // Nome utente utilizzato per la connessione al Database
private String pwdUtente; // Password usata per la connessione al Database
private String errore; // Raccoglie informazioni riguardo l'ultima eccezione sollevata
private Connection db; // La connessione col Database
private boolean connesso; // Flag che indica se la connessione è attiva o meno

public GestioneDB(String nomeDB) { this(nomeDB, "", ""); }

public GestioneDB(String nomeDB, String nomeUtente, String pwdUtente) {
this.nomeDB = nomeDB;
this.nomeUtente = nomeUtente;
this.pwdUtente = pwdUtente;
connesso = false;
errore = "";

}

// Apre la connessione con il Database
public boolean connetti() {
connesso = false;
try {

// Carico il driver JDBC per la connessione con il database MySQL
Class.forName("com.mysql.jdbc.Driver");

// Controllo che il nome del Database non sia nulla
if (!nomeDB.equals("")) {

// Controllo se il nome utente va usato o meno per la connessione
if (nomeUtente.equals("")) {

// La connessione non richiede nome utente e password
//db = DriverManager.getConnection("jdbc:mysql://sql.miosito.org/" + nomeDB);
db = DriverManager.getConnection("jdbc:mysql://sql.miosito.org/" + nomeDB);
} else {

// La connessione richiede nome utente, controllo se necessita anche della password
if (pwdUtente.equals("")) {

// La connessione non necessita di password
db = DriverManager.getConnection("jdbc:mysql://sql.miosito.org/" + nomeDB + "?user=" + nomeUtente);
} else {

// La connessione necessita della password
db = DriverManager.getConnection("jdbc:mysql://sql.miosito.org/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente);
}
}

// La connessione è avvenuta con successo
connesso = true;
} else {
System.out.println("Manca il nome del database!!");
System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\"");
System.exit(0);
}
} catch (Exception e) { errore = e.getMessage(); }
return connesso;
}

Il problema è che quando invoco il metodo connetti() si blocca tutto e dopo un paio di minuti ricevo il messaggio di errore

Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.


Qualcuno sa dove sbaglio??:help:

wizard1993
23-12-2009, 17:02
intanto nell'url jdbc imposta la porta dove mysql è in ascolto, poi controlla che il tuo provider ti abiliti alla connessione dall'esterno e che quindi il database non rifuti tutti le connessioni dall'esterno

postgres
05-01-2010, 18:07
ANche io ho lo stesso problema!
Oh meglio dove cavolo si mettono i vari dati nome utente nome db password!
Qui dice in un ipotetico file config.xml!?!?!?!?
http://forum.html.it/forum/showthread.php?threadid=801696.

postgres
06-01-2010, 01:00
ma devo fare: miosito.com:numeroporta ?