2013-02-15 126 views
1

我有一些問題讓Hibernate和Spring啓動並運行。我有一個Web服務器項目,它使用了其他幾個持久實體的其他項目。我遇到的問題是,對於存儲在WEB-INF/libs內另一個jar中的實體類,我得到了一個ClassNotFoundException異常。休眠與彈簧

是否需要爲每個包含實體類的jar創建一個persistence.xml?

如果您需要查看任何配置文件,請讓我知道。

回答

1

根據您的設置,可能有很多不同的方法來解決這個問題 - 而且他們通常都不會想到(IMO)。

基本問題是使用ClassLoader隔離。有關jar文件可以訪問的規則。

在你的特定情況下,解決它的最簡單方法可能是將persistence.xml放在父Web項目中。如果您不使用持久性xml,則需要從Web項目引導hibernate/spring。

父級Web項目應該可以訪問其WEB-INF/lib中的所有庫,而libs文件夾中的每個jar都可能無法訪問對方。

您可以在每個jar中設置另一個persistence.xml,但它們不會被合併到一個持久性單元中。您需要根據您想要的實體使用不同的pu。

+0

感謝您的答案 - 我猜測這是一個類加載器問題。我會嘗試你的建議。 – Walter 2013-02-15 20:12:34