Ошибка при использовании lib commons-dbcp2 (класс BasicDataSource) в многомодульном java проекте - PullRequest
1 голос
/ 02 августа 2020

Я хочу использовать BasicDataSource для соединения с БД. В проекте «classi c» java (без модулей) все работает правильно, но когда я создаю многомодульный проект, во время компиляции произошла ошибка.

Error:(..) java: cannot access javax.management.MBeanRegistration

Я никогда не встречал таких ошибок перед. Когда я пытаюсь вызвать любой метод класса BasicDataSource, возникает интересная ошибка

    Class.forName("com.mysql.cj.jdbc.Driver");
    BasicDataSource basicDataSource = new BasicDataSource();
    basicDataSource.setUsername("username"); //Error occurs here 

В документах для библиотеки указано, что:

DBCP 2.7.0 компилируется и работает под Java Только 8 (JDB C 4.2)

Но:

двоичные файлы DBCP 2.7.0 должны использоваться приложениями, работающими на Java 8 и выше.

Ссылка: https://commons.apache.org/proper/commons-dbcp/

информация о модуле. java:

module BusinessLogic {
    requires mysql.connector.java;
    requires java.sql;
    requires com.fasterxml.jackson.databind;

   requires commons.dbcp2;
   requires commons.pool2;
   requires commons.logging;
}

Итак, я попытался использовать двоичные файлы, но он не помогло, как избежать этой проблемы?

1 Ответ

0 голосов
/ 02 августа 2020

Решение: необходимо указать еще одну зависимость в информации о модуле:

requires java.management;

или удалить информацию о модуле.

информация о модуле. java:

    module DBModule{
        requires mysql.connector.java;
        requires java.sql;
        requires commons.dbcp2;
        requires java.management;
    }
...