#java #jdbc #classnotfoundexception
#java #jdbc #classnotfoundexception
Вопрос:
Когда я подключаюсь к OracleDriver в приложении, все в порядке. Но когда я хочу подключиться для запуска тестов JUnit, я получаю ClassNotFoundException . И я делаю точно то же самое!
Я добавил ojbc в библиотеку и testlibrary.
public JDBCDataStorage(boolean production) throws DataStorageException {
this.production = production;
try {
rb = (PropertyResourceBundle) PropertyResourceBundle.getBundle("app.control.database.JDBCconfig");
Class.forName(rb.getString("driver"));
} catch (ClassNotFoundException e) {
throw new DataStorageException("Something went wrong in new JDBCDataStorage()" ": " e.getMessage());
}
DriverManager.setLoginTimeout(3);
}
Ответ №1:
Проверьте две вещи
- Это
rb.getString("driver")
фактически возвращает полное имя вашего драйвера. - Что JAR-файл драйвера находится в classpath вашего тестового приложения
Ответ №2:
Попробуйте добавить jar-файл драйвера Oracle JDBC в classpath теста JUnit. Если вы запускаете модульный тест в Eclipse, добавьте jar-файл драйвера к записям пользователя в конфигурации запуска теста JUnit.
Комментарии:
1. Я запускаю тест в NetBeans. Я добавил ojdbc.jar в тестовых библиотеках. Я не знаю, что происходит не так…
2. Какой класс жалуется JVM на то, что он не может найти? Совпадает ли его имя со строкой, которая
rb.getString("driver")
возвращает? Совпадает ли это с именем класса драйвера?3. @DerekMahar У меня есть это в моих свойствах: драйвер: oracle.jdbc. OracleDriver, и он находит его. Похоже, что он не находит файл jar…
4. Вы уверены, что это правильное имя класса? Используйте JFind ( jfind.sourceforge.net ) для поиска класса в jar-файле драйвера Oracle JDBC.
5. Каково значение вашего пути к классу JVM и каков полный путь к файлу jar драйвера Oracle JDBC?