oracle.jdbc.OracleDriver найден в приложении, а не в тесте

#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:

Проверьте две вещи

  1. Это rb.getString("driver") фактически возвращает полное имя вашего драйвера.
  2. Что 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?