ejb2.0區(qū)別.doc_第1頁
ejb2.0區(qū)別.doc_第2頁
ejb2.0區(qū)別.doc_第3頁
ejb2.0區(qū)別.doc_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

EJB初學者經常有的十一個疑惑 發(fā)布時間:2007.11.26 04:39 來源:賽迪網技術社區(qū)作者:執(zhí)木1、EJB2.0有哪些內容?分別用在什么場合? EJB2.0和EJB1.1的區(qū)別? 答:規(guī)范內容包括Bean提供者,應用程序裝配者,EJB容器,EJB配置工具,EJB服務提供者,系統(tǒng)管理員。這里面,EJB容器是EJB之所以能夠運行的核心。EJB容器管理著EJB的創(chuàng)建,撤消,激活,去活,與數(shù)據(jù)庫的連接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.2、EJB與JAVA BEAN的區(qū)別?答:Java Bean 是可復用的組件,對Java Bean并沒有嚴格的規(guī)范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現(xiàn)Serializable接口用于實現(xiàn)Bean的持久性。Java Bean實際上相當于微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當于DCOM,即分布式組件。它是基于Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。2、EJB是基于哪些技術實現(xiàn)的?并說出SessionBean和EntityBean的區(qū)別,StatefulBean和StatelessBean的區(qū)別。答:EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技術實現(xiàn)。SessionBean在J2EE應用程序中被用來完成一些服務器端的業(yè)務操作,例如訪問數(shù)據(jù)庫、調用其他EJB組件。EntityBean被用來代表應用系統(tǒng)中用到的數(shù)據(jù)。對于客戶機,SessionBean是一種非持久性對象,它實現(xiàn)某些在服務器上運行的業(yè)務邏輯。對于客戶機,EntityBean是一種持久性對象,它代表一個存儲在持久性存儲器中的實體的對象視圖,或是一個由現(xiàn)有企業(yè)應用程序實現(xiàn)的實體。Session Bean 還可以再細分為 Stateful Session Bean 與 Stateless Session Bean ,這兩種的 Session Bean都可以將系統(tǒng)邏輯放在 method之中執(zhí)行,不同的是 Stateful Session Bean 可以記錄呼叫者的狀態(tài),因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體。Stateless Session Bean 雖然也是邏輯組件,但是他卻不負責記錄使用者狀態(tài),也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 并不會找尋特定的 Stateless Session Bean 的實體來執(zhí)行這個 method。換言之,很可能數(shù)個使用者在執(zhí)行某個 Stateless Session Bean 的 methods 時,會是同一個 Bean 的 Instance 在執(zhí)行。從內存方面來看, Stateful Session Bean 與 Stateless Session Bean 比較, Stateful Session Bean 會消耗 J2EE Server 較多的內存,然而 Stateful Session Bean 的優(yōu)勢卻在于他可以維持使用者的狀態(tài)。3、EJB與JAVA BEAN的區(qū)別?答:Java Bean 是可復用的組件,對Java Bean并沒有嚴格的規(guī)范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現(xiàn)Serializable接口用于實現(xiàn)Bean的持久性。Java Bean實際上相當于微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當于DCOM,即分布式組件。它是基于Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。EJB包括(SessionBean,EntityBean)說出他們的生命周期,及如何管理事務的?SessionBean:Stateless Session Bean 的生命周期是由容器決定的,當客戶機發(fā)出請求要建立一個Bean的實例時,EJB容器不一定要創(chuàng)建一個新的Bean的實例供客戶機調用,而是隨便找一個現(xiàn)有的實例提供給客戶機。當客戶機第一次調用一個Stateful Session Bean 時,容器必須立即在服務器中創(chuàng)建一個新的Bean實例,并關聯(lián)到客戶機上,以后此客戶機調用Stateful Session Bean 的方法時容器會把調用分派到與此客戶機相關聯(lián)的Bean實例。EntityBean:Entity Beans能存活相對較長的時間,并且狀態(tài)是持續(xù)的。只要數(shù)據(jù)庫中的數(shù)據(jù)存在,Entity beans就一直存活。而不是按照應用程序或者服務進程來說的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理。EJB通過以下技術管理實務:對象管理組織(OMG)的對象實務服務(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),開發(fā)組(X/Open)的XA接口。4、EJB的角色和三個對象答:一個完整的基于EJB的分布式計算結構由六個角色組成,這六個角色可以由不同的開發(fā)商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規(guī)范,以保證彼此之間的兼容性。這六個角色分別是EJB組件開發(fā)者(Enterprise Bean Provider) 、應用組合者(Application Assembler)、部署者(Deployer)、EJB 服務器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系統(tǒng)管理員(System Administrator)三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類5、EJB容器提供的服務 答:主要提供聲明周期管理、代碼產生、持續(xù)性管理、安全、事務管理、鎖和并發(fā)行管理等服務。6、EJB規(guī)范規(guī)定EJB中禁止的操作有哪些?答:1.不能操作線程和線程API(線程API指非線程對象的方法如notify,wait等),2.不能操作awt,3.不能實現(xiàn)服務器功能,4.不能對靜態(tài)屬生存取,5.不能使用IO操作直接存取文件系統(tǒng),6.不能加載本地庫.,7.不能將this作為變量和返回,8.不能循環(huán)調用。7、remote接口和home接口主要作用答:remote接口定義了業(yè)務方法,用于EJB客戶端調用業(yè)務方法。home接口是EJB工廠用于創(chuàng)建和移除查找EJB實例8、bean 實例的生命周期答:對于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實例,設置上下文、創(chuàng)建EJB Object(create)、業(yè)務方法調用、remove等過程,對于存在緩沖池管理的Bean,在create之后實例并不從內存清除,而是采用緩沖池調度機制不斷重用實例,而對于存在Cache管理的Bean則通過激活和去激活機制保持Bean的狀態(tài)并限制內存中實例數(shù)量。9、EJB的激活機制答:以Stateful Session Bean 為例:其Cache大小決定了內存中可以同時存在的Bean實例的數(shù)量,根據(jù)MRU或NRU算法,實例在激活和去激活狀態(tài)之間遷移,激活機制是當客戶端調用某個EJB實例業(yè)務方法時,如果對應EJB Object發(fā)現(xiàn)自己沒有綁定對應的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回復(激活)此實例。狀態(tài)變遷前會調用對應的ejbActive和ejbPassivate方法。10、EJB的幾種類型答:會話(Session)Bean ,實體(Entity)Bean 消息驅動的(Mess

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論