2017-05-11 98 views
0

我使用NetBeans,但我不明白。有人可以解釋我爲什麼要將Hibernate作爲框架添加到Java EE應用程序中的WAR模塊中? WAR模塊只是表示層。我將在EJB模塊中訪問數據庫。但是沒有辦法將它作爲框架添加到那裏。當我試圖將jar文件從WAR庫拖動到EJB庫時,光標變爲「drop is disabled」並且什麼也沒有發生。爲什麼不把它放在正確的地方? (例如,在多層應用程序的情況下) 我只想在EJB模塊中作爲實體訪問我的數據。爲什麼要將Hibernate作爲框架添加到WAR模塊?

+0

如果您堅持使用標準的JPA API,並且您正在運行在現代化的Java EE服務器上,那麼您根本不需要擔心Hibernate。 –

回答

0

WAR是一個Web應用程序存檔,這意味着它不僅僅是表示層。

過去常用的方法是使用包含每個EJB JAR,庫JAR和WAR的EAR文件。然後,類加載器層次結構(大部分時間)都進入服務器 - > EAR - > WAR。

在過去的幾個JavaEE版本中,WAR開始接管這個職責(至少在JavaEE的Web配置文件中是AFAIK)。

因此,通過WEB-INF/lib將您的EJB-JAR和庫JAR添加到WAR中。這兩個工件都由應用程序服務器加載並掃描所管理的資源,例如, EJB或CDI bean。

如果你想把它放在一邊,你必須使用EAR或者把Hibernate放到應用服務器的類路徑中。

希望澄清事情。

+0

謝謝你的回覆。但我最瞭解這一點。這並不能說明情況:分佈式多層體系結構如何?演示文稿和業務邏輯發生在不同的節點上時。在這種情況下,沒有理由在Web服務器上部署Hibernate。這是一個Java EE應用程序,所以EAR總是存在。 – User007

相關問題