[高等教育]實(shí)驗(yàn)3-會話bean_第1頁
[高等教育]實(shí)驗(yàn)3-會話bean_第2頁
[高等教育]實(shí)驗(yàn)3-會話bean_第3頁
[高等教育]實(shí)驗(yàn)3-會話bean_第4頁
[高等教育]實(shí)驗(yàn)3-會話bean_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.實(shí)驗(yàn)3. 在Eclipse中開發(fā)部署無狀態(tài)會話bean實(shí)驗(yàn)?zāi)康?在MyEclipse中創(chuàng)建EJB工程,創(chuàng)建一個(gè)提供個(gè)人所得稅計(jì)算功能的無狀態(tài)會話bean,然后將該無狀態(tài)會話bean部署到JBoss服務(wù)器上,編寫客戶端測試程序調(diào)用該無狀態(tài)會話bean對其進(jìn)行測試。2在MyEclipse中創(chuàng)建EJB工程,創(chuàng)建一個(gè)有狀態(tài)會話bean,該會話bean提供網(wǎng)上書店的購物車功能,使用該會話bean的客戶程序可以將圖書添加到購物車、刪除購物車中的圖書或者獲取購物車中的圖書信息。創(chuàng)建完成后,將該有狀態(tài)會話bean部署到weblogic服務(wù)器上,編寫客戶端測試程序調(diào)用該有狀態(tài)會話bean對其進(jìn)行測試。u 掌握

2、無狀態(tài)會話bean和有狀態(tài)會話bean的基本概念;u 能夠在MyEclipse中創(chuàng)建和部署無狀態(tài)會話bean和有狀態(tài)會話bean;u 能夠編寫代碼訪問無狀態(tài)會話bean和有狀態(tài)會話bean。實(shí)驗(yàn)過程1本實(shí)驗(yàn)主要是在MyEclipse下開發(fā)一個(gè)提供個(gè)人所得稅計(jì)算功能的無狀態(tài)會話bean,并將該組件部署到JBoss服務(wù)器上,編寫客戶端程序訪問該組件。2本實(shí)驗(yàn)主要是在MyEclipse下開發(fā)一個(gè)提供模擬購物車功能的有狀態(tài)會話bean,并將該組件部署到Jboss服務(wù)器上,編寫客戶端程序訪問該組件。環(huán)境要求服務(wù)器:Jboss 6.0集成開發(fā)環(huán)境:MyEclipse 8.5/MyEclipse 8.6 一

3、、無狀態(tài)會話bean步驟1:創(chuàng)建EJB工程1. 選擇創(chuàng)建EJB工程在主菜單中依次選擇【File】à【New】à【EJB Project】。圖3-1如果在【New】的子菜單中找不到【EJB Project】,可以選擇【File】à【New】à【Other】。圖3-2然后,在窗口中的樹型目錄里依次選擇【MyEclipse】à【Java Enterprise Project】à【EJB Project】。圖3-3 2. 在新建EJB工程的對話框中輸入工程名稱,【J2EE Specification Level】選擇Java EE 5.0 E

4、JB3,取消對選項(xiàng)【Add support for Entity beans】的選擇,點(diǎn)擊Finish按鈕關(guān)閉窗口。圖3-4在左側(cè)的Package Explore窗口中出現(xiàn)新建的項(xiàng)目SalaryEJB。圖3-5步驟2:配置項(xiàng)目的構(gòu)建路徑1. 鼠標(biāo)右擊工程節(jié)點(diǎn),在右鍵菜單中依次選擇【Build Path】à【Configure Build Path.】。圖3-62. 在構(gòu)建路徑配置對話框中點(diǎn)擊【Add External JARs】按鈕。圖3-73. 在打開的文件選擇框中找到%JBOSS_HOME%client文件夾,選擇所以*.jar文件。圖3-84.加入所以jar文件后的界面顯示如下

5、圖所示,該文件已經(jīng)列在了構(gòu)建路徑中。點(diǎn)擊【OK】按鈕關(guān)閉窗口。圖3-9步驟3:創(chuàng)建無狀態(tài)會話bean1. 新建包。鼠標(biāo)右擊工程節(jié)點(diǎn),在彈出菜單中依次選擇【New】à【Package】圖3-102. 在【New Java Package】窗口中輸入包名:.salary圖3-113. 鼠標(biāo)右擊包名,在右鍵菜單中依次選擇【New】à【EJB3 Session Bean】。圖3-124. 在新建會話bean對話框中輸入需要?jiǎng)?chuàng)建的會話bean的名稱,這里輸入的是SalaryEJB,【Session Type】選擇Stateless。根據(jù)需要選擇Local或Remote指定

6、需要提供的接口類型,在這里兩個(gè)選項(xiàng)都選上。圖3-135. 點(diǎn)擊【Finish】按鈕,左側(cè)的工程目錄中出現(xiàn)自動生成的無狀態(tài)會話bean的兩個(gè)接口和bean類文件。圖3-146. 在Remote接口中聲明業(yè)務(wù)方法。打開SalaryEJBRemote.java文件,在Remote接口中添加下面的抽象方法定義。public float getPersonalRevenue(float salary,float start);7. Bean類的實(shí)現(xiàn)1)將類定義中的元注釋Stateless修改為:Stateless(mappedName="salary") 2)在bean類中實(shí)現(xiàn)Rem

7、ote接口中定義的抽象方法。打開SalaryEJB.java文件,在bean類中添加下面的方法實(shí)現(xiàn):public float getPersonalRevenue(float salary,float start)float revenue=0;float revenueSalary;revenueSalary=salary-start;if(revenueSalary<0)revenue=0;else if(revenueSalary<500)revenue=revenueSalary*5/100;else if(revenueSalary<2000)revenue=rev

8、enueSalary*10/100-25;else if(revenueSalary<5000)revenue=revenueSalary*15/100-125;else if(revenueSalary<20000)revenue=revenueSalary*20/100-375;else if(revenueSalary<40000)revenue=revenueSalary*25/100-1375;else if(revenueSalary<60000)revenue=revenueSalary*30/100-3375;else if(revenueSalary&

9、lt;80000)revenue=revenueSalary*35/100-6375;else if(revenueSalary<100000)revenue=revenueSalary*40/100-10375;elserevenue=revenueSalary*45/100-15375;return revenue;8. 保存工程中所有文件。步驟4:部署無狀態(tài)會話bean組件1鼠標(biāo)右擊工程名稱,在右鍵菜單中依次選擇【export】,如圖3-15所示圖3-152在彈出對話框中選擇【Java】->Jar file,單擊【finish】,彈出如圖3-17所示對話框。圖3-16圖3-1

10、73. 在圖3-17所示對話框中作相應(yīng)選擇。然后點(diǎn)擊【Finish】按鈕關(guān)閉窗口,完成部署。4. 啟動JBoss服務(wù)器。在MyEclipse工具欄中找到服務(wù)器按鈕,點(diǎn)擊后依次選擇【Jboss 6.0】à【Start】啟動JBoss服務(wù)器。圖3-186. 打開Web Browser并在地址欄中輸入JBoss控制臺地址:http:/localhost:8080/。圖3-187. 在登錄窗口中輸入用戶名和密碼,進(jìn)入控制臺進(jìn)行。用戶名和密碼均為:admin,具體操作如圖3-19所示。圖3-19圖3-20 步驟5:編寫測試程序1. 鼠標(biāo)右擊包名,在右鍵菜單中依次選擇【New】à【Cl

11、ass】。圖3-212. 在新建窗口中輸入類名:SalaryClient,選擇在類中創(chuàng)建main方法。圖3-223. 編寫代碼在main方法中添加下面的代碼并在類定義中導(dǎo)入所需要的類和接口:package .salary;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;public class SalaryClient /* * param args */public static void main(String args) Hashtable<

12、;String, String> ht=new Hashtable<String, String>(); ht.put("java.naming.factory.initial","erfaces.NamingContextFactory");ht.put("vider.url","localhost:1099");Context ctx;try ctx = new InitialContext(ht); /創(chuàng)建上下文環(huán)境SalaryEJBRem

13、ote salary = (SalaryEJBRemote) ctx.lookup("salary"); float s=salary.getPersonalRevenue(5000, 2000); System.out.println(s); catch(Exception e) System.out.println(e.toString();4. 右擊SalaryClient.java文件,在右鍵菜單中依次選擇【Run As】à【Java Application】運(yùn)行測試程序。結(jié)果如下:實(shí)驗(yàn)總結(jié)本實(shí)驗(yàn)主要是使用MyEclipse創(chuàng)建了一個(gè)提供個(gè)人所得稅計(jì)算功能

14、的無狀態(tài)會話bean組件。同時(shí)編寫了一個(gè)客戶端程序調(diào)用該無狀態(tài)會話bean的業(yè)務(wù)方法進(jìn)行計(jì)算。通過該實(shí)驗(yàn),掌握無狀態(tài)會話bean的創(chuàng)建、部署和使用。二、有狀態(tài)會話bean步驟1:創(chuàng)建EJB工程2. 選擇創(chuàng)建EJB工程在主菜單中依次選擇【File】à【New】à【EJB Project】。圖3-23如果在【New】的子菜單中找不到【EJB Project】,可以選擇【File】à【New】à【Other】。圖3-24圖3-25 2. 在新建EJB工程的對話框中輸入工程名稱cartProject,【J2EE Specification Level】選擇Jav

15、a EE 5.0 EJB3,取消對選項(xiàng)【Add support for Entity beans】的選擇,點(diǎn)擊Finish按鈕關(guān)閉窗口。圖3-26在左側(cè)的Package Explorer窗口中顯示出新建的項(xiàng)目cartProject。圖3-27步驟2:配置項(xiàng)目的構(gòu)建路徑1. 鼠標(biāo)右擊工程節(jié)點(diǎn),在右鍵菜單中依次選擇【Build Path】à【Configure Build Path.】。圖3-282. 在構(gòu)建路徑配置對話框中點(diǎn)擊【Add External JARs】按鈕。圖3-293. 在打開的文件選擇框中找到%JBOSS_HOME%client文件夾下選擇所以jar文件,如圖3-30圖

16、3-304.加入所以jar文件后的界面顯示如下圖所示,該文件已經(jīng)列在了構(gòu)建路徑中。點(diǎn)擊【OK】按鈕關(guān)閉窗口。圖3-31步驟3:創(chuàng)建有狀態(tài)會話bean2. 新建包。鼠標(biāo)右擊工程節(jié)點(diǎn),在彈出菜單中依次選擇【New】à【Package】圖3-322. 在【New Java Package】窗口中輸入包名:.cart圖3-333. 鼠標(biāo)右擊包名,在右鍵菜單中依次選擇【New】à【EJB3 Session Bean】。圖3-344. 在新建會話bean對話框中輸入需要?jiǎng)?chuàng)建的會話bean的名稱Cart,【Session Type】選擇Stateful?!綜reate Int

17、erface】選擇Remote。圖3-355. 點(diǎn)擊【Finish】按鈕,左側(cè)的工程目錄中出現(xiàn)自動生成的無狀態(tài)會話bean的兩個(gè)接口和bean類文件。圖3-36 鼠標(biāo)右擊包名,在右鍵菜單中依次選擇【New】à【Class】。圖3-37 在【New Java Class】窗口中輸入需要?jiǎng)?chuàng)建的類名:BookException。圖3-38 使用同樣的過程新建另外一個(gè)類:IdVerifier。圖3-40打開BookException.java文件,在類的定義中加入該異常類的兩個(gè)構(gòu)造方法: public BookException() public BookException(String m

18、sg) super(msg); 打開IdVerifier.java文件,在類的定義中加入下面的代碼: public IdVerifier() public boolean validate(String id) boolean result = true; for (int i = 0; i < id.length(); i+) if (Character.isDigit(id.charAt(i) = false) result = false; return result;7. 在Remote接口中聲明業(yè)務(wù)方法。打開CartRemote.java文件,在Remote接口中添加下面的抽象

19、方法定義。 public void initialize(String person) throws BookException; public void initialize(String person, String id) throws BookException; public void addBook(String title); public void removeBook(String title) throws BookException; public List<String> getContents(); public void remove();8. Bean

20、類的實(shí)現(xiàn)1)將Bean類定義(源文件:Cart.java)中的元注釋Stateless修改為:Stateless(mappedName="cart") 2)在bean類中實(shí)現(xiàn)Remote接口中定義的抽象方法。打開Cart.java文件,在bean類中添加下面的方法實(shí)現(xiàn): String customerName; String customerId; List<String> contents; public void initialize(String person) throws BookException if (person = null) throw n

21、ew BookException("Null person not allowed."); else customerName = person; customerId = "0" contents = new ArrayList<String>(); public void initialize(String person, String id) throws BookException if (person = null) throw new BookException("Null person not allowed.&quo

22、t;); else customerName = person; IdVerifier idChecker = new IdVerifier(); if (idChecker.validate(id) customerId = id; else throw new BookException("Invalid id: " + id); contents = new ArrayList<String>(); public void addBook(String title) contents.add(title); public void removeBook(S

23、tring title) throws BookException boolean result = contents.remove(title); if (result = false) throw new BookException(""" + title + "" not in cart."); public List<String> getContents() return contents; Remove() public void remove() contents = null; 8. 保存工程中所有文件。步

24、驟4:部署無狀態(tài)會話bean組件項(xiàng)目部署與無狀態(tài)會話bean相同步驟5:編寫測試程序1. 右單擊空白區(qū)域,如圖3-41所示。圖3-412. 在彈出窗口中輸入項(xiàng)目名稱,如圖3-42所示。圖3-423. 右單擊WebRoot,選擇【New】->【JSP】,如圖3-43所示。圖3-434.在彈出窗口中輸入文件名,如圖3-44所示。圖3-445.cart.jsp 內(nèi)容如下:<% page contentType="text/html; charset=GBK"%><% page import="javax.naming.*,.cart.

25、*,java.util.*"%><%Context ctx;try ctx = new InitialContext(); /創(chuàng)建上下文環(huán)境 CartRemote cart = (CartRemote) ctx.lookup("cart"); cart.initialize("Duke d'Url", "123"); cart.addBook("Infinite Jest"); cart.addBook("Bel Canto"); cart.addBook("Kafka on the Shore"); List<String> bookList = cart.getContents(); /bookList = cart.getContents(); Iterator<String> iterato

溫馨提示

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

最新文檔

評論

0/150

提交評論