2009-12-17 67 views
0

我在類似擴展的服務器端應用程序中使用Hibernate,並將我的二進制文件放到服務器應用程序的擴展文件夾中。 問題是,如果我運行服務器,根文件夾是服務器應用程序的根文件夾,而不是二進制文件的根目錄。因此,Hibernate搜索該文件夾中的配置文件,並嘗試從該文件夾中找到類。我想這與服務器啓動時的JVM有關。配置文件不是問題,因爲我可以在那裏複製我的配置文件,但所有路徑都無效。 因此,在我生成的映射文件中,我有一個類org.gmate.data.SomeClass.java,但它不會找到它。設置休眠根文件夾

我的問題:有什麼辦法,解決方法或解決方法,我可以設置Hibernate的根文件夾爲擴展文件夾,所以它開始從那裏獲得類?

感謝提前全部答覆, gmate

回答

0

我終於找到了我的問題的解決方案。問題不在於我認爲的假定的根文件夾,而是服務器使用的類加載程序。就像在我的擴展文件夾中一樣,一個CustomClassLoader加載了我的類。並且它們沒有出現在類路徑中。當我將我的類移動到一個jar文件中,並將該jar文件添加到類路徑中時,我設法使用了hibernate。將擴展文件夾添加到類路徑導致使用SystemClassLoader加載這些類,但是隨後自定義類加載器的優勢消失了。