在多模块 java 项目中使用 lib commons-dbcp2 (BasicDataSource class) 时出错

Error using lib commons-dbcp2 (BasicDataSource class) in multi module java project

我想用BasicDataSource做DB对接。在“classic”java 项目(没有模块)中一切正常,但是当我创建多模块项目时,编译时出现了一些错误。

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

我以前从未遇到过这样的错误。当我尝试调用 BasicDataSource 的任何方法时发生有趣的错误 class

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

lib 文档说:

DBCP 2.7.0 compiles and runs under Java 8 only (JDBC 4.2)

但是:

DBCP 2.7.0 binaries should be used by applications running on Java 8 and above.

参考:https://commons.apache.org/proper/commons-dbcp/

模块-info.java:

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

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

所以,我尝试使用二进制文件但没有帮助,我该如何避免这个问题?

解决:需要在module-info中多指定一个依赖:

requires java.management;

或删除模块信息。

模块-info.java:

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