2011-03-04 47 views
2

我們使用Oracle 11g ojdbc6.jar時會收到以下錯誤:警告:錯誤而註冊的Oracle JDBC診斷性的MBean

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) 

許多論壇和博客調查後,我們還沒有發現任何最終的解決方案呢。所以,我們想在這裏分享解決方法。

回答

3

根據Oracle文檔,JDBC可診斷性管理功能引入了一個MBean,oracle.jdbc.driver.OracleDiagnosabilityMBean。此MBean提供了啓用和禁用JDBC日誌記錄的方法,您可以在此處找到它: https://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm

而且,驅動程序使用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

它爲我們工作,不上面有任何WANRING錯誤。

+0

這可能無法解決所有人的問題,因爲它不適合我。鏈接到Oracle下載無效。 – jedison 2015-07-09 16:58:32

0

我有完全相同的問題。我不知道我的環境是否一樣。

在我的環境中,我在同一個應用程序中同時使用了jdbc和jboss jar。 我相信,但沒有驗證,在jboss罐子裏的東西是掛鉤 到類加載器並導致問題。

我解決了這個問題,只加載了ojdbc驅動jar,創建了我的 數據庫實例,然後加載了jboss jar。

0

我正在使用Maven,我的項目使用的是log4j 1.2.15。無論出於何種原因,1.2.15都依賴於jms 1.1jmxtools 1.2.1jmxri 1.2.1

jmxri 1.2.1包含版本StandardMBean,其構造函數採用StandardMBean(不是java.lang.Class)。雖然我沒有做廣泛的測試來證實這個假設,但我相信這是正在使用的類的版本,也是錯誤的最終原因。

看起來好像log4j 1.2.14沒有這些依賴關係。所以我退縮到1.2.14,並把它們拿出來。

+0

對我來說,使用log4j 1.2.14發生錯誤 – jedison 2015-07-09 16:30:37