1. 所用環(huán)境:
- JDK 8
- EJB 3.x
- NetBeans IDE 8.2
- (GlassFish Server 4.1.1)
安裝 JDK8.0 并配置環(huán)境變量谜诫,安裝 NetBeans IDE
2. 項目描述:
我們要創(chuàng)建一個簡單的 EJB3.0 無狀態(tài) Session Bean “ExempleStatelessBean”和一個 Servlet 客戶端 “Exemple Servlet”蒜撮,這個客戶端用來調(diào)用創(chuàng)建的 Bean;
這個 “ExempleStatelessBean” 的例子將要解釋如何在服務(wù)器上開發(fā)芯急,部署和運行 EJB3 無狀態(tài) Session Bean;
我們將在 Servlet 中使用無狀態(tài)會話 Bean 的依賴注入 (Dependency Injection)健盒;
這個會話 Bean 和這個 Servlet 被部署在同一個服務(wù)器上酝豪。
3. 創(chuàng)建一個新的EJB項目:
打開NetBeansIDE并創(chuàng)建一個項目:
File → New Project→ Java EE → Entreprise Application (Next)
→輸入項目名稱和路徑 (Next)
→設(shè)置服務(wù)器和 JavaEE 版本并選擇是否創(chuàng)建 EJB 模塊和 WebApplication 模塊
→Finish
這里我的項目名稱叫 Ex1,路徑為默認路徑:
服務(wù)器和 JavaEE 版本為默認渊鞋,并把創(chuàng)建 EJB 模塊和 WebApplication 模塊勾上:
然后你就可以在 IDE 中看見一個 EJB 項目。Ex1-ejb 是 ejb 模塊瞧挤,我們在這里寫 Bean锡宋;Ex1-war 是 WabApplication 模塊,我們把 servlet 寫在這里特恬。
3.1 創(chuàng)建Session Bean
在 ejb 模塊即 Ex1-ejb 右擊执俩,New → Session Bean → 輸入包名以及 EJB 名字,這里我叫他 ExempleBean → 選擇 Stateless 表示無狀態(tài) → Finish
3.2 給Session Bean添加功能
打開 Bean癌刽,輸入代碼役首,這里我寫了一個簡單的問候函數(shù) hello,注意此處無需構(gòu)造函數(shù)显拜,且盡量不要用全局變量 (這是個企業(yè)即“應(yīng)用衡奥,若將來有很多人同時訪問,全局變量會造成問題):
4. 創(chuàng)建 Servlet Class
此時讼油,我們轉(zhuǎn)入 WabApplication 模塊杰赛,也就是 Ex1-war呢簸。
在 WabApplication 模塊即 Ex1-war 右擊矮台,New → Servlet → 輸入包名以及 Servlet 名字,這里我叫他 ExempleServlet → 選擇設(shè)置配置文件根时,Sevlet 的名稱和URL → Finish
隨后瘦赫,寫入 Servlet 代碼:
首先,注意要導(dǎo)入剛才創(chuàng)建的 EJB蛤迎,并且加上包名确虱。還要導(dǎo)入包 javax.ejb.EJB (這樣下面的注解才會生效)
通過 @EJB 注解來注入 EJB,這樣就會自動創(chuàng)建出實例而不需要自己來 new 出實例替裆。在 processRequest 方法中就可以直接調(diào)用 ExempleBean 實例 exemple 的方法校辩,比如這里的 exemple.hello(username)窘问。
這里是 Servlet 的HttpServlet 的方法,也就是當用 Get 和Post 時都調(diào)用 ProcessRequest 方法宜咒。
5. 部署項目
先通過小錘子加小掃帚的那個圖標來 build 項目惠赫,再在右側(cè)項目名稱上右擊然后選擇 Deploy 來部署上服務(wù)器,最后通過右三角的那個圖標來運行故黑。
在瀏覽器地址欄里輸入URL:localhost:8080/Ex1-war/ExempleServlet
然后就可以看到結(jié)果:
恭喜你儿咱,完成啦!
下次預(yù)告:JDBC