EJB的使用软件架构9

EJB的使用

 <一>实验目的:

1.学习和了解J2EE的EJB规范;

2.使用会话EJB (stateful & stateless);

3.使用会话实体EJB (BMP & CMP)。

<二> 实验内容:

EJB简介: EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.com技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话BeanSession Bean),实体BeanEntity Bean)和消息驱动BeanMessageDriven Bean

下面给出EJB在J2EE的5层模型中的位置及其分类结构图:

EJB的组件:

EJB对象的调用过程:

 

a) 调用第一步:接口声明

主接口:

import java.rmi.RemoteException;

import javax.ejb.CreateException;

import javax.ejb.EJBHome;

publicinterface HelloWorldHome extends EJBHome

{

public HelloWorld create()throws CreateException, RemoteException;

}

业务接口:

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

public interface HelloWorld extends EJBObject {

public String helloWorld() throwsRemoteException;

}

b) 调用第二步:创建Home Stub

try {

Context ctx = new InitialContext();

Object h = ctx.lookup("HelloWorldEJB");

home =(HelloWorldHome)PortableRemoteObject.narrow(h,HelloWorldHome.class);

} catch (NamingException e) {……}

c) EJB调用第三步:创建EJB实例调用远程方法

try {

HelloWorld hw = home.create();

System.out.println("Say Hello to EJB.");

String ejbSays = hw.helloWorld();

System.out.println("The EJB said:"+ejbSays);

} catch (Exception e) {…}

会话EJB:基本EJB,一般用于实现业务逻辑

多在分布环境中应用:基本功能与一般Java bean相差不大;跨地址空间使用;可视为远程对象的扩展。分为有状态与无状态两种。

有状态与无状态的差别:

a) 部署上的差别,在ejb-jar.xml的<session-type></session-type>字段中,有状态是Stateful;无状态是stateless

b) 调用实现上效果的差别,Stateful Session Bean可以一对一保持调用客户的状态,Stateless Session Bean在方法调用之间不会保持某个调用客户的状态

实体EJB(BMP & CMP)

a) BMP (Bean managed persistence) :BMP是在Bean中完成对数据库JDBC的各种调用,也就是说,在你的实体bean(entity bean)中,明确写入了SQL语句,如“insert .. ”或“select ..”,并且使用Datasource获得一个数据库资源以及连接(connection)从而对数据库直接进行增加、删除和修改。

b) CMP (Container managed persistence ):CMP是由EJB容器自动完成对数据库的操作,你所有做的,就是在实体bean重写入SetXXX或getXXX方法,然后在ejb-jar.xml

中定义cmp-field就可以。

<三>实验步骤 :

1) WebLogic的安装和创建工作区:

安装过程详见前面的实验。打开WebLogic安装目录,双击运行/weblogic81/common/bin/config.cmd,创建自己的工作区,过程类似前面的实验。创建用户名和密码,然后修改Configuration Name为lab10。完成后启动WebLogic服务。在上步中你已创建一个工作区,假设为lab10,则在\bea\user_projects中有一个lab10目录。运行startWeblogic.cmd。登录Weblogic管理控制台,打开IE浏览器,输入:http://localhost:7001/console,输入工作区的用户名和密码。

2) WebLogic平台下部署Web应用:

主目录ejb结构如下图:

在sessionEJB目录下,修改环境设置setEnv.bat,运行EJB_Packet.bat对

sessionEJB目录下的其它文件进行打包,生成sessionEJB.jar。

e) 从IE中进入到Weblogic控制台界面,点击lab10->Deplayments->EJB Modules,点击“Deploy a new EJBModule... ”,根据提示选择

所要部署的Web应用的jar文件。

无状态:

组要是使用会话ejb,试验中通过对比有无状态的ejb来加深对有无会话ejb的了解。有状态会话ejb封装了业务逻辑和特定于某个客户的状态。无状态则ejb则是不保留会话状态。一般无状态的话只有一个实例对多个进程进行服务,所以该对象里面的某个属性可能在别人修改后自己再读取,从而在读取时与自己原先赋值的内容不一致。有状态的则保持一个会话服务一个客户,同时保持用户对对象的操作更变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值