Исключение Oracle JDBC, в веб-приложении, в развертывании Tomcat: нет подходящего драйвера в java.sql.DriverManager.getDriver

Я провожу модульное тестирование своего трикотажного веб-сервиса через трикотажный клиент, используя eclipse Oxygen.3a, Tomcat 9, JDK 1.8 и ojbc14.jar в моем WEB-INF/lib моего веб-приложения в eclipse. У меня нет файлов ojdbc.jar в моем каталоге Tomcat/lib. Итак, есть единственная копия моего файла jar ojdbc, то есть ojdbc14.jar. Мой URL-адрес JDBC — jdbc:oracle:thin:@mcname.com:1521:orcl1.

Мой запрос не выполняется из-за следующей ошибки:

Исключение при получении соединения java.sql.SQLException: нет подходящего драйвера в java.sql.DriverManager.getDriver(DriverManager.java:315) в:

Код:

DriverManager.getDriver("jdbc:oracle:thin:@" + url);

person Soumali Chatterjee    schedule 05.08.2018    source источник


Ответы (1)


Вы используете старый драйвер OJDBC Java 1.4/1.5 с JDK 1.8. Вы должны обновить JAR до ojdbc8.jar в соответствии с Что отличаются ли выпуски Oracle JDBC от версий JDK?. Запуск устаревшего драйвера OJDBC — не лучшая идея, если вы получаете java.sql.SQLException: No suitable driver, это означает, что регистрация драйвера могла быть неудачной.

Обратите внимание, что если ваша переменная url равна jdbc:oracle:thin:@mcname.com:1521:orcl1, тогда код становится

DriverManager.getDriver("jdbc:oracle:thin:@jdbc:oracle:thin:@mcname.com:1521:orcl1);

и URL-адрес дублирует jdbc:oracle:thin:@. Убедитесь, что вы правильно создаете URL.

person Karol Dowbecki    schedule 05.08.2018
comment
хорошо, теперь я использую Java 7, так как были некоторые другие зависимости, с asm.jar. Итак, сейчас конфигурация: Jersey 1.10, Tomcat 9, JDK 1.7, ojdbc7.jar. По-прежнему возникает то же исключение, что и выше: java.sql.SQLException: Нет подходящего драйвера в java.sql.DriverManager.getDriver(DriverManager.java:315) My code flow is: DriverManager.getDriver(url); } catch (SQLException e) { String urlStr=jdbc:oracle:thin:@ + url; DriverManager.getDriver(urlStr);` - person Soumali Chatterjee; 05.08.2018
comment
Итак, я тестирую оба сценария 1)DriverManager.getDriver("mcname.com:1521:orcl1") 2)If above code throws exception, then try below code: DriverManager.getDriver("jdbc:oracle:thin:@mcname.com:1521:orcl1") - person Soumali Chatterjee; 05.08.2018
comment
@SoumaliChatterjee jdbc:oracle:thin:@mcname.com:1521:orcl1 — правильный URL. Вам нужно отладить метод Driver.getDriver(String), чтобы понять, почему он не работает. - person Karol Dowbecki; 05.08.2018
comment
Я попробовал DriverManager.getDrivers(), чтобы получить список загруженных драйверов JDBC, он ничего не печатает. Это означает, что драйверы не загружены - person Soumali Chatterjee; 06.08.2018