版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年新版中國電動消音單體項(xiàng)目可行性研究報(bào)告
- 2024-2030年全球市場維生素軟糖補(bǔ)充劑市場營銷策略及未來盈利前景預(yù)測報(bào)告
- 2024-2030年全球及中國隱形內(nèi)衣行業(yè)盈利模式及營銷策略分析報(bào)告
- 2024-2030年全球及中國被褥吸塵器行業(yè)銷售策略及營銷動態(tài)分析報(bào)告
- 2024-2030年全球及中國甲基丙烯酸甲酯膜和板材行業(yè)供需前景及投資趨勢預(yù)測報(bào)告
- 2024-2030年全球及中國智能水杯行業(yè)營銷態(tài)勢及投資效益預(yù)測報(bào)告
- 2024-2030年全球及中國四乙酰植物鞘氨醇行業(yè)競爭動態(tài)及需求前景預(yù)測報(bào)告
- 2024-2030年全球及中國光纖數(shù)據(jù)通信行業(yè)發(fā)展前景及投資動態(tài)分析報(bào)告
- 2024-2030年全球及中國乙二胺四乙酸(EDTA)行業(yè)現(xiàn)狀規(guī)模及投資前景預(yù)測報(bào)告
- 2024-2030年中國麻紡行業(yè)生產(chǎn)模式分析及未來發(fā)展策略研究報(bào)告
- 乙炔發(fā)生器、電石庫安全檢查表
- 克拉申監(jiān)控理論述評
- ICH技術(shù)指導(dǎo)原則概述
- (完整版)一年級家長會PPT模板
- 《中華商業(yè)文化》第七章
- 15D503利用建筑物金屬體做防雷及接地裝置安裝圖集
- 消防訓(xùn)練工作研討材料
- 第六章-機(jī)車轉(zhuǎn)向架課件
- 醫(yī)患雙方權(quán)利和義務(wù)課件
- 高三年級班級成績分析報(bào)告
- 手術(shù)室專科護(hù)士培訓(xùn)計(jì)劃
評論
0/150
提交評論