1、Java EE是什嗎?
答:Java EE是Sun公司提出的多層(multi-diered),分布式(distributed),基於組件(component-base)的企業級應用程式模型 (enterpriese application model)。在這樣的一個應用系統中,可按照功能劃分為不同的組件,這些組件又可在不同電腦上,並且處於相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件、web層和組件、Business層和組件、公司資訊系統層。
2、請對以下在Java EE中常用的名詞進行解釋。
答:(1)EJB容器:Enterprise java bean 容器,更具有行業領域特色。它提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規範的EJB放入該容器,馬上就會被容器進行高效率的管理,並且可以通過現成的介面來獲得系統層級的服務。例如郵件服務等。
(2)JNDI:全稱為Java Naming Directory Interface,譯為Java命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程式在其上面留下自己的索引,從而滿足快速尋找和定位分布式應用程式功能。
(3)JMS:全稱為Java Message Service,譯為JAVAMessage Service。主要實現各個應用程式之間的通訊,包括點對點和廣播。
(4)JTA:全稱為Java Transaction API,譯為JAVA事務服務。提供各種分散式交易服務,應用程式只需調用其提供的介面即可。
(5)JAF:全稱為Java Action FrameWork,譯為JAVA安全認證架構。提供一些安全控制方面的架構,讓開發人員通過各種部署和自訂實現自己的個性安全控制策略。
3、EJB具體有幾種類型?
答:EJB具體包括會話Bean、實體Bean和訊息驅動Bean三種類型。
會話Bean又可分為有狀態和無狀態兩種。
實體Bean又可分為Bean管理的持久性和容器管理的持久性兩種。
4、試說明EJB的角色和三個對象。
答:一個完整的基於EJB的分散式運算結構由六個角色群組成,這六個角色可以由不同的開發商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規範,以保證彼此之間的相容性。這六個角色分別是EJB組件開發人員 、應用組合者、部署者、EJB 伺服器提供者、EJB 容器提供者和系統管理員。三個對象是Remote介面、Home介面和Bean類。
5、EJB與Java Bean的區別是什嗎?
答:Java Bean 是可複用的組件,對Java Bean並沒有嚴格的規範。理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由於Java Bean是被容器所建立(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現Serializable介面用於實現Bean的持久性。Java Bean實際上相當於微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當於DCOM,即分布式組件。它是基於Java的遠程方法調用RMI技術的,所以EJB可以被遠端存取,但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接存取真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,
EJB組件由容器所建立和管理。客戶通過容器來訪問真正的EJB組件。
6、EJB容器提供的服務主要有哪些?
答:主要提供聲明周期管理、代碼產生、持久性管理、安全、交易管理、鎖和並發行管理等服務。
7、客服端調用EJB對象的幾個基本步驟是什嗎?
答:設定JNDI服務工廠以及JNDI服務地址系統屬性,尋找Home介面,從Home介面調用Create方法建立Remote介面,通過Remote介面調用其業務方法。
8、remote介面和home介面主要作用是什嗎?
答:remote介面定義了業務方法,用於EJB用戶端調用業務方法。
home介面是EJB工廠用於建立和移除尋找EJB執行個體。
9、請詳細描述一下EJB的啟用機制。
答:以Stateful Session Bean 為例,Cache大小決定了記憶體中可以同時存在的Bean執行個體的數量,根據MRU或NRU演算法,執行個體在啟用和去啟用狀態之間遷移,啟用機制是當用戶端調用某個EJB執行個體業務方法時,如果對應EJB Object發現自己沒有綁定對應的Bean執行個體則從其去啟用Bean儲存中(通過序列化機制儲存執行個體)回複此執行個體。狀態變遷前會調用對應的EJB Active和EJB Passivate方法。
10、Java EE是技術還是平台還是架構?
答:J2EE本身是一個標準,一個為企業分布式應用的開發提供的標準平台。J2EE也是一個架構,包括JDBC、JNDI、RMI、JMS、EJB和JTA等技術。
11、EJB規範規定EJB中禁止的操作有哪些?
答:EJB規範規定EJB中禁止的操作包括:
(1)不能操作線程和線程API(線程API指非線程對象的方法如notify,wait等)。
(2)不能操作awt。
(3)不能實現伺服器功能。
(4)不能對靜態屬生存取。
(5)不能使用IO操作直接存取檔案系統。
(6)不能載入本地庫。
(7)不能將this作為變數和返回。
(8)不能迴圈調用。
12、EJB需直接實現它的業務介面或Home介面嗎?請簡述理由。
答:遠程介面和Home介面不需要直接實現,他們的實現代碼是由伺服器產生的,程式運行中對應實作類別會作為對應介面類型的執行個體被使用。