使用MyEclipse開發(fā)Java EE應(yīng)用:企業(yè)級應(yīng)用程序項目(下)
你開學,我放價!MyEclipse線上狂歡繼續(xù)!火熱開啟中>>
二、項目組織、依賴性和類解析
JEE規(guī)范為企業(yè)應(yīng)用程序定義了一個分層的Java類解決策略,這個自下而上的搜索策略如下圖所示。當任何模塊引用Java類時,其本地類加載器首先搜索該模塊的代碼庫。如果該類不是本地模塊,那么該模塊會在上一級的類加載器上進行搜索請求。 此過程一直持續(xù)到找到類或達到頂級Java引導類加載器(未在圖中顯示)。
了解JEE企業(yè)應(yīng)用程序類加載器策略非常重要:加載策略會影響如何在Web和EJB模塊項目之間分配類。例如,如果您有一個或多個在Web模塊中的用戶界面元素和EJB模塊的服務(wù)之間傳遞業(yè)務(wù)的數(shù)據(jù)對象,通過在EJB模塊中定位數(shù)據(jù)對象,它們對Web模塊和EJB模塊都是可見的。
導致類加載問題的兩個常見項目組織錯誤是:
- 將數(shù)據(jù)對象類放在Web模塊中,從而導致運行時ClassNotFoundExceptions。
- 將共享類復(fù)制到Web和EJB模塊項目,該方法通常導致很難診斷序列化和類不兼容性相關(guān)的錯誤。
MyEclipse JEE項目模仿了這種層次化類加載器策略,為您提供準確的集結(jié)時間了解MyEclipse企業(yè)項目及其組成Web和EJB模塊項目的類加載器。這是使用Eclipse項目依賴關(guān)系完成的,如下圖所示。 當將Web或EJB項目添加到MyEclipse EAR項目時,相應(yīng)地設(shè)置項目依賴關(guān)系。不要手動修改這些項目依賴關(guān)系,這樣做可能會引起不必要的編譯問題。
注意:MyEclipse開發(fā)團隊認為,支持類加載器仿真是一個至關(guān)重要的要求,用來幫助開發(fā)人員識別難以解決由類加載程序可見性問題引起的運行時錯誤。這是MyEclipse不支持在EAR項目中嵌入模塊代碼的原因之一。 相反,EAR項目將維護與單個Web和EJB項目的關(guān)聯(lián)作為模塊。