2011-02-11 113 views
1

我試圖使用org.apache.ddlutils包來讀取數據庫元數據。 我已經寫了下面的方法:使用org.apache.ddlutils.DdlUtilsException時出現問題

public static void readMetaData(DataSource dataSource) throws DdlUtilsException{ 

    final Platform platform = PlatformFactory.createNewPlatformInstance(dataSource); 
} 

拋出DdlUtilsException語句提供了以下錯誤:

型DdlUtilsException無異常可能拋出;異常類型必須是Throwable的

一個子類,我根本不明白這個錯誤背後的原因,因爲在http://db.apache.org/ddlutils/api/org/apache/ddlutils/DdlUtilsException.html的API明確規定以下內容:

java.lang.Object 
    extended by java.lang.Throwable 
     extended by java.lang.Exception 
      extended by java.lang.RuntimeException 
       extended by org.apache.commons.lang.exception.NestableRuntimeException 
        extended by org.apache.ddlutils.DdlUtilsException 

請指點。

+0

僅供以後參考。 Apache DdlUtils 1.0依賴於Apache Commons Lang 2.6。更高版本(3.0+)不兼容。 – Eonil 2013-03-25 16:39:26

回答

3

我的猜測是你有另一個名爲DdlUtilsException的類,可能在頂層包中,因爲編譯器沒有提到完整的包名。如果您使用的是Eclipse或類似的東西,請嘗試導航到類聲明。

編輯:好的,根據您的評論判斷,您不包括各種依賴項。確保你已經下載了DdlUtils-1.0-bin.zip,並且依賴關係都在lib目錄中。目前還不清楚您是否需要全部,但您最好先使用它們,然後刪除不需要的東西。

+0

感謝Jon的回覆!我只在構建路徑中使用了jar DdlUtils-1.0.jar。沒有其他的jar文件。但是當我查看eclipse的錯誤視圖時,它說:「類型org.apache.commons.lang.exception.NestableRuntimeException無法解析,它是從所需的.class文件間接引用的」這個錯誤的原因是什麼? ?? – 2011-02-11 15:21:02

+0

@n_g:聽起來像編譯器告訴你到底什麼是錯的。您需要添加一些依賴項,包括apache.commons。 ddlutils主頁應該告訴你需要依賴關係。 – 2011-02-11 15:52:18

1

看起來像其他類'org.apache.commons.lang.exception.NestableRuntimeException'位於commons-lang。下載並添加該jar,它應該工作。查看DDL Utils的文檔,看看還有什麼依賴。