Java 警告:注册Oracle JDBC可诊断MBean时出错
使用Oracle 11g ojdbc6.jar时,我们遇到以下错误:Java 警告:注册Oracle JDBC可诊断MBean时出错,java,jdbc,oracle11g,Java,Jdbc,Oracle11g,使用Oracle 11g ojdbc6.jar时,我们遇到以下错误: 警告:注册Oracle JDBC可诊断MBean时出错。 java.lang.NoSuchMethodError: java.management.StandardMBean.(Ljava/lang/Class;Z)V 在oracle.jdbc.driver.OracleDiagnosabilityBean上 位于oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriv
警告:注册Oracle JDBC可诊断MBean时出错。
java.lang.NoSuchMethodError:
java.management.StandardMBean.(Ljava/lang/Class;Z)V
在oracle.jdbc.driver.OracleDiagnosabilityBean上
位于oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:342)
oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:199)
在从许多论坛和博客进行调查后,我们还没有找到任何最终的解决方案。所以,我们想在这里分享解决方法 根据Oracle文档,JDBC可诊断性管理功能引入了一个MBean,Oracle.JDBC.driver.OracleDiagnosabilityBean。这个MBean提供了启用和禁用JDBC日志记录的方法,您可以在这里找到它: 而且,驱动程序使用java.util.logging进行日志记录,实际上在我们的例子中,我们并不需要使用这些信息,所以决定禁用日志,这样就不会再出现警告了 如何禁用驱动程序(oracle.jdbc)的日志:
- 默认情况下,JRE使用JRE_HOME\lib\logging.properties中的默认属性文件,因此编辑该文件并添加以下信息:
- oracle.jdbc.level=OFF
- 或者为java.util.logging配置您自己的属性日志文件
- java-Djava.util.logging.config.file=/YourConfig.properties
- 将oracle.jdbc.level=OFF添加到YourConfig.properties
它对我们有效,上面没有任何错误。我也有同样的问题。我不知道我的环境是否相同 在我的环境中,我在同一个应用程序中同时使用jdbc和jboss JAR。 我相信,但没有证实,jboss jars中的某些东西正在连接 进入类加载器并导致问题 我通过只加载ojdbc驱动程序jar,创建
数据库实例,然后加载jboss JAR。我使用的是Maven,我的项目使用的是
log4j1.2.15
。无论出于何种原因,1.2.15
依赖于jm1.1
,jmxtools 1.2.1
,以及jmxri 1.2.1
jmxri 1.2.1
包含一个版本的StandardMBean
,其构造函数采用StandardMBean
(而不是java.lang.Class
)。虽然我没有做大量的测试来证实这个假设,但我相信这是所使用的类的版本,也是错误的最终原因
似乎
log4j1.2.14
没有这些依赖关系。因此,我退回到1.2.14
,并将它们取出。这可能不会解决每个人的问题,因为我没有。指向Oracle下载的链接无效。