试验七、 Jboss平台下EJB的使用
一、实验目的:
学习和了解J2EE的EJB规范
使用会话EJB(stateful&stateless)
了解实体EJB(BMP&CMP)
了解消息驱动EJB 。
二、实验环境及软件
JBoss,ecl ipse
三、实验内容及原理
EJB简介: EJB是sun的服务器端组件模型最大的用处是部署分布式应用程序类似微软的.com技术。凭借java跨平台的优势用EJB技术部署的分布式系统可以不限于特定的平台。 EJB(EnterpriseJavaBean)是J2EE的一部分定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里Enterprise Java Beans(EJB)称为Java企业Bean是Java的核心代码分别是会话BeanSession Bean实体Bean Entity Bean和消息驱动Bean MessageDriven Bean。下面给出EJB在J2EE的5层模型中的位置及其分类结构图
EJB的组件
EJB的调用方法
EJB的主(Home)接口客户端利用EJB主接口来管理EJB的生命周期 EJB主接口允许客户端创建、移除和查找EJB。当EJB被发布后 EJB主接口stub被绑定到JNDI 。
会话EJB基本EJB一般用于实现业务逻辑多在分布环境中应用基本功能与一般Java bean相差不大跨地址空间使用可视为远程对象的扩展。分为有状态与无状态两种。
有状态与无状态的差别a) 部署上的差别注入时候有状态是Stateful 无状态是statelessb) 调用实现上效果的差别 Stateful Session Bean可以一对一保持调用客户的状态StatelessSession 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容器自动完成对数据库的操作。
四、实验步骤
1) 软件安装
同上次实验进入bin 目录运行run.bat看是否启动正常。浏览器打开访问http://localhost:8080。
2) 服务器配置
打开ecl ipse按上次实验步骤配置Jboss服务器。在正下方的视图窗口中点击Servers
开始创建一个JBOSS服务器选择JBOSS Community下的JBOSS AS 6.x进入下一步然后再Home Directory找到刚才解压缩的Jboss目录然后finish配置完成。如下图
3) 新建会话EJB项目 代码在code文件夹
在左边view右键NewJava Project,创建一个java工程取名MyFirstEJB。右键MyFirstEJB
工程Bui ld PathConfigure Bui ld PathLibrariesAdd External JARS。找到Jboss安装目录下ci lent文件夹里的jbossal l-cl ient.jar添加所需要的Jboss的jar包。
在src目录上右键新建NewInterface创建一个接口包名com.ejb接口取名为sessionDemo然后添加代码如下图
在src目录上右键新建NewClass依次创建两个类包名com.bean类取名分别为sessionDemoBeanStateless和sessionDemoBeanStateful 这两个类继承上面的sessionDemo接口然后添加代码。
4) 发布
右键MyFirstEJB工程ExportJavaJAR Fi le 将工程导出到Jboss 目录下的server\default\deploy导出的JAR包名称为MyFirstEJB.jar。
点击绿色按钮启动Jboss服务器在消息中可以看到刚刚部署的情况
5) 测试
另外创建一个java工程进行测试右键NewJava Project,创建一个java工程取名EJBtest。右键EJBtest工程Bui ld PathConfigure Bui ld PathLibrariesAdd External JARS。找到Jboss安装目录下ci lent文件夹里的jbossal l-cl ient.jar添加所需要的Jboss的jar包。
在src 目录上右键新建NewPackage创建一个包包名com.ejb。将MyFirstEJB里的sessionDemo.java接口拷贝到com.ejb包里。
在src 目录上右键新建NewClass依次创建三个类包名com.cl ient类取名分别为EJBcl ient1、 EJBcl ient2、 EJBcl ient3然后添加代码。
分别右键EJBcl ient1.java、 EJBcl ient2.java、 EJBcl ient3.java run asjava appl ication在下方的Console可以查看运行效果。其中点击DisplaySelected Console 红窗口可以切换不同的程序运行的结果。
在EJBcl ient1.java、 EJBcl ient2.java、 EJBcl ient3.java中更改代码lookup查找项改成Sd=(sessionDemo)ctx. lookup(“sessionDemoBeanStateful/remote”);
重新分别右键EJBcl ient1.java、 EJBcl ient2.java、 EJBcl ient3.java run asjava appl ication比较更改后的区别。
结果截图如下
Sta te less
Stateful
五、实验小结
当处于stateless状态时 cl ient不会独占接口 当其不用时会将接口释放所以在statueless状态下三个cl ient所用的接口是不一定的一直变化可以是相同的
而处于stateful状态时 cl ient会独占接口所以三个cl ient所用的接口都是不同的而且至始至终都是同一个。
麻花云在7月特意为主机测评用户群定制了促销活动:香港宽频CN2云服务器、安徽移动云服务器(BGP网络,非单线,效果更好)、安徽移动独立服务器、安徽电信独立服务器,全部不限制流量,自带一个IPv4,默认5Gbps的DDoS防御。活动链接:https://www.mhyun.net/act/zjcp特价云服务器不限流量,自带一个IPv4,5Gbps防御香港宽频CN2全固态Ⅲ型 4核4G【KVM】内存:...
易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...
优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内东北地区哈尔滨云服务器!全部是独享带宽!首月5折 续费5折续费!地区CPU内存硬盘带宽价格购买哈尔滨电信2核2G50G1M53元直达链接哈尔滨电信4核4G50G1M83元直达链接哈尔滨电信8核8G50G1M131元直...