实验3-ejb 会话bean-eclips.doc_第1页
实验3-ejb 会话bean-eclips.doc_第2页
实验3-ejb 会话bean-eclips.doc_第3页
实验3-ejb 会话bean-eclips.doc_第4页
实验3-ejb 会话bean-eclips.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验3. 在Eclipse中开发部署无状态会话bean实验内容1在MyEclipse中创建EJB工程,创建一个提供个人所得税计算功能的无状态会话bean,然后将该无状态会话bean部署到JBoss服务器上,编写客户端测试程序调用该无状态会话bean对其进行测试。2在MyEclipse中创建EJB工程,创建一个有状态会话bean,该会话bean提供网上书店的购物车功能,使用该会话bean的客户程序可以将图书添加到购物车、删除购物车中的图书或者获取购物车中的图书信息。创建完成后,将该有状态会话bean部署到weblogic服务器上,编写客户端测试程序调用该有状态会话bean对其进行测试。实验目的u 掌握无状态会话bean和有状态会话bean的基本概念;u 能够在MyEclipse中创建和部署无状态会话bean和有状态会话bean;u 能够编写代码访问无状态会话bean和有状态会话bean。实验介绍1本实验主要是在MyEclipse下开发一个提供个人所得税计算功能的无状态会话bean,并将该组件部署到JBoss服务器上,编写客户端程序访问该组件。2本实验主要是在MyEclipse下开发一个提供模拟购物车功能的有状态会话bean,并将该组件部署到Jboss服务器上,编写客户端程序访问该组件。环境要求服务器:Jboss 6.0集成开发环境:MyEclipse 8.5/MyEclipse 8.6实验指导 一、无状态会话bean步骤1:创建EJB工程1. 选择创建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 EJB3,取消对选项【Add support for Entity beans】的选择,点击Finish按钮关闭窗口。图3-4在左侧的Package Explore窗口中出现新建的项目SalaryEJB。图3-5步骤2:配置项目的构建路径1. 鼠标右击工程节点,在右键菜单中依次选择【Build Path】【Configure Build Path.】。图3-62. 在构建路径配置对话框中点击【Add External JARs】按钮。图3-73. 在打开的文件选择框中找到%JBOSS_HOME%client文件夹,选择所以*.jar文件。图3-84.加入所以jar文件后的界面显示如下图所示,该文件已经列在了构建路径中。点击【OK】按钮关闭窗口。图3-9步骤3:创建无状态会话bean1. 新建包。鼠标右击工程节点,在弹出菜单中依次选择【New】【Package】图3-102. 在【New Java Package】窗口中输入包名:.salary图3-113. 鼠标右击包名,在右键菜单中依次选择【New】【EJB3 Session Bean】。图3-124. 在新建会话bean对话框中输入需要创建的会话bean的名称,这里输入的是SalaryEJB,【Session Type】选择Stateless。根据需要选择Local或Remote指定需要提供的接口类型,在这里两个选项都选上。图3-135. 点击【Finish】按钮,左侧的工程目录中出现自动生成的无状态会话bean的两个接口和bean类文件。图3-146. 在Remote接口中声明业务方法。打开SalaryEJBRemote.java文件,在Remote接口中添加下面的抽象方法定义。public float getPersonalRevenue(float salary,float start);7. Bean类的实现1)将类定义中的元注释Stateless修改为:Stateless(mappedName=salary) 2)在bean类中实现Remote接口中定义的抽象方法。打开SalaryEJB.java文件,在bean类中添加下面的方法实现:public float getPersonalRevenue(float salary,float start)float revenue=0;float revenueSalary;revenueSalary=salary-start;if(revenueSalary0)revenue=0;else if(revenueSalary500)revenue=revenueSalary*5/100;else if(revenueSalary2000)revenue=revenueSalary*10/100-25;else if(revenueSalary5000)revenue=revenueSalary*15/100-125;else if(revenueSalary20000)revenue=revenueSalary*20/100-375;else if(revenueSalary40000)revenue=revenueSalary*25/100-1375;else if(revenueSalary60000)revenue=revenueSalary*30/100-3375;else if(revenueSalary80000)revenue=revenueSalary*35/100-6375;else if(revenueSalaryJar file,单击【finish】,弹出如图3-17所示对话框。图3-16图3-173. 在图3-17所示对话框中作相应选择。然后点击【Finish】按钮关闭窗口,完成部署。4. 启动JBoss服务器。在MyEclipse工具栏中找到服务器按钮,点击后依次选择【Jboss 6.0】【Start】启动JBoss服务器。图3-186. 打开Web Browser并在地址栏中输入JBoss控制台地址:http:/localhost:8080/。图3-187. 在登录窗口中输入用户名和密码,进入控制台进行。用户名和密码均为:admin,具体操作如图3-19所示。图3-19图3-20 步骤5:编写测试程序1. 鼠标右击包名,在右键菜单中依次选择【New】【Class】。图3-212. 在新建窗口中输入类名:SalaryClient,选择在类中创建main方法。图3-223. 编写代码在main方法中添加下面的代码并在类定义中导入所需要的类和接口:Hashtable ht=new Hashtable(); ht.put(java.naming.factory.initial,erfaces.NamingContextFactory);ht.put(vider.url,localhost:1099);Context ctx;try ctx = new InitialContext(ht); /创建上下文环境SalaryEJBRemote 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】运行测试程序。实验总结本实验主要是使用MyEclipse创建了一个提供个人所得税计算功能的无状态会话bean组件。同时编写了一个客户端程序调用该无状态会话bean的业务方法进行计算。通过该实验,掌握无状态会话bean的创建、部署和使用。二、有状态会话bean步骤1:创建EJB工程2. 选择创建EJB工程在主菜单中依次选择【File】【New】【EJB Project】。图3-23如果在【New】的子菜单中找不到【EJB Project】,可以选择【File】【New】【Other】。图3-24图3-25 2. 在新建EJB工程的对话框中输入工程名称cartProject,【J2EE Specification Level】选择Java EE 5.0 EJB3,取消对选项【Add support for Entity beans】的选择,点击Finish按钮关闭窗口。图3-26在左侧的Package Explorer窗口中显示出新建的项目cartProject。图3-27步骤2:配置项目的构建路径1. 鼠标右击工程节点,在右键菜单中依次选择【Build Path】【Configure Build Path.】。图3-282. 在构建路径配置对话框中点击【Add External JARs】按钮。图3-293. 在打开的文件选择框中找到%JBOSS_HOME%client文件夹下选择所以jar文件,如图3-30图3-304.加入所以jar文件后的界面显示如下图所示,该文件已经列在了构建路径中。点击【OK】按钮关闭窗口。图3-31步骤3:创建有状态会话bean2. 新建包。鼠标右击工程节点,在弹出菜单中依次选择【New】【Package】图3-322. 在【New Java Package】窗口中输入包名:.cart图3-333. 鼠标右击包名,在右键菜单中依次选择【New】【EJB3 Session Bean】。图3-344. 在新建会话bean对话框中输入需要创建的会话bean的名称Cart,【Session Type】选择Stateful。【Create Interface】选择Remote。图3-355. 点击【Finish】按钮,左侧的工程目录中出现自动生成的无状态会话bean的两个接口和bean类文件。图3-36 鼠标右击包名,在右键菜单中依次选择【New】【Class】。图3-37 在【New Java Class】窗口中输入需要创建的类名:BookException。图3-38 使用同样的过程新建另外一个类:IdVerifier。图3-40打开BookException.java文件,在类的定义中加入该异常类的两个构造方法: public BookException() public BookException(String msg) 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接口中声明业务方法。打开CartRemote.java文件,在Remote接口中添加下面的抽象方法定义。 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 getContents(); public void remove();8. Bean类的实现1)将Bean类定义(源文件:Cart.java)中的元注释Stateless修改为:Stateless(mappedName=cart) 2)在bean类中实现Remote接口中定义的抽象方法。打开Cart.java文件,在bean类中添加下面的方法实现: String customerName; String customerId; List contents; public void initialize(String person) throws BookException if (person = null) throw new BookException(Null person not allowed.); else customerName = person; customerId = 0; contents = new ArrayList(); public void initialize(String person, String id) throws BookException if (person = null) throw new BookException(Null person not allowed.); else customerName = person; IdVerifier idChecker = new IdVerifier(); if (idChecker.validate(id) customerId = id; else throw new BookException(Invalid id: + id); contents = new ArrayList(); public void addBook(String title) contents.add(title); public void removeBook(String title) throws BookException boolean result = contents.remove(title); if (result = false) throw new BookException( + title + not in cart.); public List getContents() return contents; Remove() public void remove() contents = null; 8. 保存工程中所有文件。步骤4:部署无状态会话bean组件项目部署与无状态会话bean相同步骤5:编写测试程序1. 右单击空白区域,如图3-41所示。图3-412. 在弹出窗口中输入项目名称,如图3-42所示。图3-423. 右单击WebRoot,选择【New】-【JSP】,如图3-43所示。图3-434.在弹出窗口中输入文件名,如图3-44所示。图3-445.cart.jsp 内容如下:%Context ctx;try ctx = new InitialContext(); /创建上下文环境 CartRemote cart = (CartRemote) ctx.lookup(cart); cart.initialize(Duke dUrl, 123); cart.addBook(Infinite Jest); cart.addBook(Bel Canto); cart.addBook(Kafka on the Shore); List bookList = cart.getContents(); /bookList = cart.getContents(); Iterator iterator = bookList.iterator(); while (iterator.hasNext() S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论