- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六会话Bean汇编
实验五 JNDI及会话Bean
实验内容
学习JNDI的概念及使用
学习会话Bean的编写、部署及调用
学习JBoss的配置
实验目的
了解JNDI使用方法
掌握会话Bean的编写、部署及调用方法
掌握有状态Session Bean与无状态Session Bean的区别
环境要求
服务器:JBoss6.0以上
集成开发环境:myEclipse 8.5 或更高
实验指导
在MyEclipse中配置JBoss
下载JBoss-6.0.0.CR1,并解压;
添加环境变量“JBoSS_HOME”为JBoss的安装目录
启动myEclipse,在下方的“Server”选项卡中点击右键,在快捷菜单中选择“Configuer Server Connector”,打开如下对话框:
在左侧列表中选择“Servers”列表中的“JBoss”-“JBoss v6.x”,然后在右侧面板中的“JBoss server”中选择“Enable”,并在“JBoss home directory”中指明你JBoss的安装目录。然后点击“ok”按钮。
JNDI的使用
在JBoss下绑定将资源绑定到JNDI。
创建一个“Web Project”工程名为“jndi”。
创建一个JSP页面“index.jsp”,并编写如下内容:
将此工程发布到JBoss上,然后启动JBoss。
打开另一个浏览器窗口,访问一次刚发布的jdni的index.jsp页面,若看到“绑定成功 点击“Add External JARS...”按钮,将JBoss安装目录中“client”目录中的所有Jar文件添加(jndi的客户端类库)。
添加一个类“Client”,代码如下:
运行上面代码,应该看到如图窗口:
编写会话Bean
无状态会话Bean
创建一个“EJB Project”工程“MyEJB”,界面如下图。
“Persistence Configuration”选择“None”,然后点击“Finish”按钮。
创建一个包:“cn.bean”用于保存EJB的类和其对应的接口文件。
创建一个叫SayHi的“EJB3 Session Bean”,如下图:选中“Create Interface”的“Local”和“Remote”,即为此类创建远程接口和本地接口,对应类文件为:SayHiLocal.java和SayHiRemote.java。“Session Type”(会话类型):Stateless(无状态会话Bean)。
两个接口内容如下:
编写会话类:SayHi,并实现以上两个接口。其内容如下:
部署EJB:在前面创建的JBoss Server的图标上点击右键,在弹出的快捷菜单中选择“Add Deployment”,弹出对话框如下图:在“Project”中选择当前工程“MyEJB”。
启动JBoss。
编写远程客户端
创建一个“Java Project”工程,名为“EJBClient”。
编辑“Build Path”将JBoss目录中Client中的所有的JAR包添加到工程的类路径上。
编辑“Build Path”,在“Projects”选项卡中将“MyEJB”工程添加的列表(如图),或复制上面EJB工程中的远程接口文件SayHIRemote包括整个包,到本工程中。
创建一个类Client,代码如下:
2)有状态会话Bean
(1)编写一个有状态会话Bean完成购物车的功能。
新建一个名叫“CartBean”的EJB3 Session Bean,对话框如下:
CartBean类的代码如下:
package cn.bean;
import java.util.ArrayList;
import java.util.HashMap;
import javax.ejb.Stateful;
@Stateful(mappedName=cart)//指明JNDI名为cart
public class CartBean implements CartBeanLocal, CartBeanRemote {
//商品信息列表,信息包括:gdID(编号),name(商品名),price(单价),number(购买数量)
private ArrayListHashMapString,Object goodsList = new ArrayListHashMapString,Object();
//添加商品
public void add(HashMapString,Object goods){
boolean found = false;
for(HashMapString,Object gd:goodsList){
if(gd.get(gdID).toSt
原创力文档


文档评论(0)