2008-10-06 8 views
2

Je cours une série de JUnits en utilisant Apache ANT en utilisant JDK 1.5.Erreur lors de la connexion à Oracle. Obtention d'une erreur UnsatisfiedLinkError pour la méthode t2cGetCharSet

Tous les JUnits qui utilisent un pilote Oracle JDBC donnent l'UnsatisfiedLinkError ci-dessous.

Quelle bibliothèque native recherche-t-on et comment puis-je résoudre ce problème? Que devrait contenir la variable PATH?

java.lang.UnsatisfiedLinkError: oracle/jdbc/driver/T2CConnection.t2cGetCharSet([CI[CI[CI[CII[SLoracle/jdbc/driver/GetCharSetError;)S 
     at oracle.jdbc.driver.T2CConnection.getCharSetIds(T2CConnection.java:2957) 
     at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:320) 
     at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:361) 
     at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:142) 
     at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:79) 
     at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:595) 
     at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:196) 
     at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:114) 
     at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:77) 
     at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:59) 
     at oracle.jdbc.pool.OracleConnectionCacheImpl.getNewPoolOrXAConnection(OracleConnectionCacheImpl.java:401) 
     at oracle.jdbc.pool.OracleConnectionCacheImpl.setMinLimit(OracleConnectionCacheImpl.java:752) 
+0

Quelle version du pilote Oracle JDBC est-ce? Est-ce classes12.zip, ou ojdbc14.jar, ou un autre tout à fait? – skaffman

Répondre

0

Had celui-ci, vous devez ajouter classes12.jar ou classes13.jar à votre classpath (pas sûr du nom, il a été plus d'un an, Google ces ...)

0

Vous devez passer -Djava.library.path = YOUR_ORACLE_HOME \ bin au paramètre en tant que JRE d'exécution

Alors ....

java [other java switches + runtime parameters] -Djava.library.path=YOUR_ORACLE_HOME\bin run-classname 

aussi, assurez-vous que le pot dans le classpath est le même que celui est en $ ORACLE_HOME/jdbc/lib ... ove écrivez l'Eclipse avec l'Oracle si nécessaire.

Si cela ne fonctionne pas, il serait utile de savoir quelle version d'Oracle que vous utilisez car cela affectera si vous devez utiliser classes12.jar ou ojdbc14.jar

0

« Jeté si la machine virtuelle Java ne peut pas trouver une définition appropriée en langue maternelle d'une méthode déclarée native. "

Signifie qu'il est à la recherche d'une DLL/so - vous utilisez probablement le pilote THICK? Pilote JDBC 2?

Si oui, alors vous voudrez peut-être ajouter OCI.DLL, etc.

+0

Vous dites au JRE où trouver la DLL avec -Djava.library.path – cagcowboy

3

Résolu! Il s'agissait en fait d'un fichier ojdbc14.jar obsolète, à l'origine de ce problème. Tout ce que j'ai fait était de le mettre à jour et le problème est maintenant résolu. Le fichier de classes

Merci

Questions connexes