OracleDataSource.setConnectionCachingEnabled génère une exception java.lang.NoSuchMethodError
Publié le 9 Mars 2010
Alors voilà une erreur qui m'aura pris pas mal de temps avant de comprendre ce qui se passe.
J'ai un projet sous Eclipse qui utilise JDBC pour se connecter à une base Oracle.
Jusque là tout va bien, le projet compile sans problème mais lorsque je l'exécute j'obtient une exception
juste sur la dernière ligne:
Pourtant la méthode existe bien puisque que mon projet compile.
Et oui mais l'erreur venait du classpath qui contenait en fait 2 jars
Cette méthode est en fait disponible à partir d'Oracle 10g.
Un petit nettoyage du classpath s'imposait donc. Il peut s'effectuer soit dans "Configure Build Path ..." disponible à partir d'un clic droit sur le projet Eclipse, soit directement en modifiant le fichier
J'ai un projet sous Eclipse qui utilise JDBC pour se connecter à une base Oracle.
Jusque là tout va bien, le projet compile sans problème mais lorsque je l'exécute j'obtient une exception
java.lang.NoSuchMethodjuste sur la dernière ligne:
OracleDataSource ods = new OracleDataSource();
// Sets the user name
ods.setUser(properties.getProperty("oracle.username"));
// Sets the password
ods.setPassword(properties.getProperty("oracle.password"));
// Sets the connection URL
ods.setURL(properties.getProperty("oracle.url"));
// Enable Caching
connectionPoolDS.setConnectionCachingEnabled(true);Pourtant la méthode existe bien puisque que mon projet compile.
Et oui mais l'erreur venait du classpath qui contenait en fait 2 jars
"classes12.jar" différents et le premier jar sur le classpath était en fait le jar d'une ancienne version d'oracle qui ne contient pas la méthode setConnectionCachingEnabled().Cette méthode est en fait disponible à partir d'Oracle 10g.
Un petit nettoyage du classpath s'imposait donc. Il peut s'effectuer soit dans "Configure Build Path ..." disponible à partir d'un clic droit sur le projet Eclipse, soit directement en modifiant le fichier
.classpath du projet.