在多模块 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;
}
我想用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;
}