We are getting the following error when using Oracle 11g ojdbc6.jar:
WARNING: Error while registering Oracle JDBC Diagnosability MBean.
java.lang.NoSuchMethodError:
javax.management.StandardMBean.<init>(Ljava/lang/Class;Z)V
at oracle.jdbc.driver.OracleDiagnosabilityMBean.<init>(OracleDiagnosabilityMBean.java:34)
at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:342)
at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:199)
After investigating from many forums and blogs, we have not found any final solutions yet. So, we want to share the workaround way here.
According Oracle document, The JDBC diagnosability management feature introduces an MBean, oracle.jdbc.driver.OracleDiagnosabilityMBean. This MBean provides means to enable and disable JDBC logging, you can find it here: https://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm.
And, the driver uses java.util.logging for logging purpose, actually in our cases we don't really need to use that info, so decide to disable the log and there is NO warning happen anymore.
How to disable the log for the driver (oracle.jdbc):
It works for us, don't get any WANRING error above.
I had the exact same issue. I don't know if my environment is the same.
In my environment, I'm using both jdbc and jboss jars in the same application. I believe, but did not verify, that something in the jboss jars is hooking into the class loader and causing the issue.
I got around the issue by only loading the ojdbc driver jar, creating my database instance, and then loading the jboss jars.
I'm using Maven and my project was using
log4j 1.2.15
. For whatever reason,1.2.15
has dependencies onjms 1.1
,jmxtools 1.2.1
, andjmxri 1.2.1
.jmxri 1.2.1
contains a version ofStandardMBean
with a constructor that takes aStandardMBean
(notjava.lang.Class
). While I did not do extensive testing to confirm this hypothesis, I believe that this is the version of the class that was being used, and the ultimate cause of the error.It seems as though
log4j 1.2.14
doesn't have those dependencies. So I backed down to1.2.14
, and took them out.