2008-10-06 3 views
2

Я запускаю серию JUnits с использованием Apache ANT с использованием JDK 1.5.Ошибка подключения к оракулу. Получение UnsatisfiedLinkError для метода t2cGetCharSet

Все JUnits, использующие драйвер JDBC Oracle, показывают UnsatisfiedLinkError, показанные ниже.

Какую родную библиотеку он ищет и как это решить? Что должна содержать переменная 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

Какая версия драйвера JDBC от Oracle это? Это class12.zip или ojdbc14.jar, или еще один? – skaffman 2008-10-06 16:33:41

ответ

0

Если бы этот, вы должны добавить classes12.jar или classes13.jar к вашему (не классам уверен в названии, это было больше года, Google это ...)

0

Вам нужно передать -Djava.library.path = YOUR_ORACLE_HOME \ Bin к JRE в качестве параметра во время выполнения

так ....

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

Кроме того, убедитесь, что банки в пути к классам тот же один, как в $ ORACLE_HOME/jdbc/lib ... ove rwrite Eclipse с Oracle, если это необходимо.

Если это не работает, это помогло бы знать, какую версию Oracle вы работаете, так как это повлияет ли вы должны использовать classes12.jar или ojdbc14.jar

0

«Вызывается, если виртуальная машина Java не может найти подходящее определение языка на основе родного языка. »

Означает, что он ищет DLL/так, вы, вероятно, используете драйвер THICK? Драйвер JDBC 2?

Если да, то вы можете добавить oci.dll и т.д.

+0

Вы сообщаете JRE, где найти DLL с -Djava.library.path – cagcowboy 2008-10-07 07:16:10

3

Решено!

Это был действительно устаревший файл ojdbc14.jar, вызывающий эту проблему. Все, что я сделал, это обновление, и проблема теперь исправлена. Файл классов

Спасибо

Смежные вопросы