Carissimi,
pongo un quesito per me davvero importantissimo, visto che ha impegnato tutta la mia giornata odierna e forse impegnerà questa notte. Per questo motivo sarò assolutamente dettagliatissimo in modo da consentirvi di meglio capire il problema.
La mia web application sviluppata in Java si interfaccia ad un database Postgre SQL grazie al driver postgresql-8.3-603.jdbc3.jar scaricato dal sito ufficiale e valido per la mia configurazione (jdk 1.4, Tomcat 5.5) adatto per versioni di postgre dalla 7.2 in su. La classe DAO è la seguente, e preleva le credenziali direttamente dal file web.xml.

codice:
package dao;

import java.sql.*;
import utility.UtilityConfig;

public class DAOMain {
		
	public Connection myCn() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
		UtilityConfig cnConf = new UtilityConfig();
		String cnHost = cnConf.UtilityGetParameter("dbHost");
		String cnName = cnConf.UtilityGetParameter("dbName");
		String cnLogin = cnConf.UtilityGetParameter("dbLogin");
		String cnPsw = cnConf.UtilityGetParameter("dbPassword");
		Connection myConnection = null; 
		Class.forName("org.postgresql.Driver").newInstance();
		myConnection = DriverManager.getConnection("jdbc:postgresql://"+cnHost+"/" + cnName + "?user=" + cnLogin + "&password=" + cnPsw);					
		return myConnection;
	}
	
	public Connection cnOpen() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
		return this.myCn();
	}
	
	public void cnClose(Connection myCn) throws SQLException{
		myCn.close();
	}	
}

In locale, ho un server Tomcat 5.5 e Postgre SQL 8.3.1 che utilizzo tramite PGAdmin 1.8.2 e tutto funziona alla perfezione. In remoto, dove la mia applicazione dovrà essere allocata, ho un pannello Plesk che offre database Postgre SQL 7.4.21 gestito tramite phpPgadmin. Tramite i pannelli di amministrazione offerti dal mio provider ho creato un nuovo database, associato user e password e, dal tool offerto, ho creato la tabella utenti della mia applicazione ed inserito una riga di prova relativa all’utente amministratore dello stesso mio software. Quindi ho caricato il war sotto il Tomcat del Plesk e loggandomi con username e password uguali a quelle memorizzate nella tabella in questione riscontravo però un errore in fase di accesso ai dati. Come mai? Quale operazione o manovra aggiuntiva dovevo compiere, passando a lavorare in remoto, che forse non ho eseguito? Sappiate che:

1) Il problema non dipende dall’applicazione; ho fatto una prova, cambiando driver e database, per vedere se sotto Mysql funzionava e non c’erano problemi (vi ricordo che il plesk del mio provider mi offre entrambe le alternative);
2) Il problema non dipende dall’applicazione a maggior ragione visto che le sue classi e servlet funzionano benissimo (esempio, se si omette la password viene coinvolta una servlet che restituisce un messaggio di errore senza bisogno di accedere alla base dati, cosa che puntualmente e correttamente avviene);
3) Il problema è certamente dell’accesso ai dati (vedo lo stesso messaggio di errore accesso dati che peraltro vedo anche in locale se cambio le credenziali di accesso al database sostituendole con altre sbagliate);
4) In locale tutto funziona benissimo ed il software si interfaccia correttamente al db postgre;

Vi prego di aiutarmi, se potete… Grazie.

Archimede