2016-09-19 2 views
1

Невозможно получить соединение с Oracle.Не удается получить соединение с Oracle

Я использую следующий фрагмент кода, чтобы получить соединение оракула в пользовательских смарт-плагин службы: -

public static Connection openNewConnection(String url, String username, String password) throws ClassNotFoundException, SQLException { 

    DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); 
    Connection connection = DriverManager.getConnection(url, username, password); 
    return connection; 
} 

Он отлично работает как автономно, но при использовании внутри JBoss, это дает "ClassCastExcepton" со следующим сообщением: -

ClassCastException: "oracle.jdbc.driver.T4CConnection не может быть брошено к oracle.jdbc.OracleConnection".

Я использовал это с ojdbc5.jar, ojdbc6.jar, ojdbc7.jar и ojdbc14.jar файлов соответственно.

Любые подсказки к этой проблеме?

+0

Это может вам помочь! http://stackoverflow.com/questions/15483356/connection-cannot-be-cast-to-oracle-jdbc-oracleconnection –

ответ

0

В соответствии с ответом «Отображаемое имя отсутствует» на этом Error casting T4CConnection to OracleConnection, ojdbcN.jar вызывает конфликт, который необходимо устранить, путем правильной переустановки.

0

Класс oracle.jdbc.driver.T4CConnection расширяет класс oracle.jdbc.driver.PhysicalConnection, который, в свою очередь, реализует интерфейс oracle.jdbc.OracleConnection. Таким образом, казалось бы, что бросок должен преуспеть.

Причина, по которой это не может быть проблемой только класса, то есть есть два файла jar с теми же классами или более конкретно: ojdbcN.jar находится на пути класса дважды, скорее всего, где-то в установке JBoss в в файле .ear/.war. И листинг терпит неудачу, потому что исходный и целевой класс и интерфейсы находятся в двух разных файлах jar.

Исправить вашу дорожку класса. Для JBoss ojdbc7.jar должен войти в общий каталог JBoss и не должен быть включен в ваш .war или .ear файл.

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