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

java.lang.NoSuchMethod

juste 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.

Rédigé par Bliz

Publié dans #Oracle

Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article