Ошибка подключения к оракулу. Получение UnsatisfiedLinkError для метода t2cGetCharSet - PullRequest
2 голосов
/ 06 октября 2008

Я запускаю серию JUnits, используя Apache ANT, используя JDK 1.5.

Все 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) 

Ответы [ 5 ]

3 голосов
/ 07 октября 2008

Решено!

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

Спасибо

0 голосов
/ 01 июня 2018

была такая же проблема; разрешается путем изменения URL-адреса соединения с jdbc: oracle: oci: @ // localhost: 1521 / имя_службы на jdbc: oracle: thin: @ // localhost: 1521 / имя_службы

0 голосов
/ 06 октября 2008

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

Так ....

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

Кроме того, убедитесь, что jar в classpath такой же, как в $ ORACLE_HOME / jdbc / lib ... при необходимости замените Eclipse на Oracle.

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

0 голосов
/ 07 октября 2008

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

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

Если да, то вы можете добавить OCI.DLL и т. Д.

0 голосов
/ 06 октября 2008

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

...