《{企业通用培训}EJB原理与运行环境培训讲义》由会员分享,可在线阅读,更多相关《{企业通用培训}EJB原理与运行环境培训讲义(33页珍藏版)》请在金锄头文库上搜索。
1、第一章,EJB原理与运行环境,课程内容,EJB概述 传统EJB同新一代EJB的对比 EJB3.0开发运行环境和配置 运行一个简单的EJB3.0的例子 JBoss服务器详细介绍 JBoss服务的部署,EJB概述,EJB(Enterprise Java Bean,企业Java Bean)是基于Java的服务器端组件框架技术。借助于它,开发者能够轻松构建企业级、分布式组件应用 EJB组件分为以下几种不同的类型,依据应用设计的不同,开发者可以选用适合应用的组件类型。,会话Bean 消息驱动Bean 实体Bean,企业Java Bean 概述,EJB 基础知识,在EJB 中主要定义了4种类型的EJB 无
2、状态会话Bean Stateless Session Bean 有状态会话Bean State Session Bean 实体Bean Entity Bean 消息驱动Bean Message-Driver Bean 这4种EJB是Sun根据大量实践提出的框架模型 Stateless Session Bean主要用于提供直接调用的逻辑功能实现和功能接口 State Session Bean主要提供调用过程中保存客户会话状态的逻辑功能实现和功能接口 Entity Bean 为对象的状态持久化提供了面向对象的映射 MessageDriver Bean 提供了基于客户程序发出消息,服务程序异步处理消
3、息的方式工作。,EJB 基础知识,EJB 角色,EJB规范定义了六种EJB开发和部署中涉及的角色 企业Bean提供者 (Enterprise Bean Provider) 负责EJB 开发,Home接口 ,Remote接口,Logic Bean 应用程序汇编人员 (Application Assembler) 负责编写EJB 调用客户端,如:JSP/Servlet ,Desktop Client 部署人员 (Deployers) 部署安装整个应用程序 系统管理员 (System Administrator) 系统管理和维护 EJB 服务器供应商 (EJB Server Provider) 负责
4、开发EJB应用程序的开发,如:WebLogic,WebSphere EJB容器供应商 (EJB Container Provider) 提供部署EJB的运行环境,以及相关工具,通常EJB容器都绑在Server一起发布,开发过程,企业Bean技术,到目前为止,EJB框架仅支持Java语言,这不同于支持多种语言的.NET框架。 从表面上看,这好像不利于EJB技术的应用,但是开发者应该知道Java是最适合构建分布式组件的语言之一,理由如下:,(1)接口同实现分离 (2)线程安全、应用安全 (3)跨平台性,传统的EJB与新一代的EJB,下面我们来看一下传统的EJB与新一代的EJB之间的区别,1传统的E
5、JB,Bean类,它是EJB组件的主要实现。 EJB对象,客户根本不能够直接调用EJB实例 。 远程接口 ,这些接口中的方法会暴露给远程客户 。 本地接口 ,这些接口中的方法会暴露给本地客户。 Home接口 ,Home接口定义了用于创建、销毁、查找本地(或远程)EJB对象的若干方法,EJB 功能,2新一代的EJB,EJB3.0则简化了EJB组件的开发过程,改变了EJB的编程模型,但是要清楚的是EJB技术本身并没有因此而变味,它仍然是服务器端软件组件框架。EJB3.0变化的只是开发和部署模型,而它的核心框架和架构原理并没有改变。 EJB3.0实现了以下几个方面:,(1)不再需要Home接口和对象
6、接口 (2)不再需要组件接口 (3)使用Java元数据注释,EJB3.0开发运行环境配置,为了辅助和加快EJB应用的开发和部署,开发者需要选用适合自身的EJB开发工具。其中有商用的开发环境,也有Open Source的开发环境。 如Boland JBuilder、BEA WebLogic WorkShop、IBM WebSphere Stdio Application Developer、NetBeans、Eclipse 等等。 另外还存在其他类型的EJB工具,它们使得开发者能够快速、成功的开发出EJB应用。 比如,使用JUnit完成测试工作,使用Ant/XDoclet构建EJB项目、使用Bo
7、rland OptimizeIt或是Quest SoftWare提供的JProbe完成性能分析等等。,下载与安装工具,1下载软件,下载安装JDK5.0。 下载安装eclipse3.2.x。 下载安装JBoss-4.0.4.GA 服务器 下载插件JBoss IDE 2.0。 下载安装MyEclipse5.5.0 GA。,2安装软件说明,以JBoss-4.0.4GA服务器为例,讲解JBoss工具的安装,(1)打开下载的JBoss安装程序,进入安装界面,如图1-2所示 :,图1-2 JBoss的安装界面,(2)然后一直选择“Next”按钮,并同意许可协议,直到出现“选择安装目录”的界面,如图1-3所
8、示:,图1-3选择安装目录,(3)在图1-3中选择要安装的目录,此处我们以默认的目录作为安装路径,之后选择“Next”按钮,出现如图1-4所示的界面,这里要选择一个安装类型,此处我们选择“Ejb3-clustered”安装选项。,图1-4 选择安装类型,(4)此前,已经安装好JDK 5.0。所以,继续选择“Next”,一直都可以是默认的设置,直到出现以下安装界面,如图1-5所示:,图1-5安装配置,(5)在图1-5所示的界面中,将四个选项都选上,然后点击“Next”按钮,即开始安装JBoss,如图1-6所示:,图1-6 安装进行中,(6)安装完毕后,在系统变量里添加JBOSS_HOME变量,变
9、量值为JBoss的安装路径。如图1-7所示:,图1-7 新建系统变量对话框,启动JBoss,“开始”“运行”,在运行窗口中输入“C:Program FilesJavaServerjboss-4.0.4.GAbinrun c-default”,这个命令是用来启动JBoss的。当然也可以进入到JBoss安装目录下的bin目录中选择ran.bat直接启动服务器 。 观察控制台上是否有Java的异常抛出,如果没有异常并看到最后输出:Started in XXs:XXms,“XX”是启动耗费的时间,则说明安装成功了 。,运行一个EJB3.0的例子,在源代码中的HelloWorld文件夹下找到HelloW
10、orld.jar复制到“JBoss安装目录/server/default/deploy”目录下,之后再将EjbTest文件夹下的“EjbTest.war”复制到同一目录下 启动服务JBoss服务器,之后在浏览器窗口的地址栏中输入:“http:/localhost:8080/EjbTest/HelloWorldTest.jsp”,JBoss详细介绍,JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。 从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于J2EE的Web 操作系统,它体现了J2EE规范中最新的技术,无论是学习还是应用,JBos
11、s都为我们提供了一个非常优秀的平台。,熟悉JBoss的目录结构,(1)bin目录 (2)client目录 (3)docs目录 (4)docs/dtd目录 (5)lib目录 (6)server目录 (7)server/default目录 (8)server/all/conf目录 (9)server/all/data目录 (10)server/all/deploy目录 (11)server/all/lib目录 (12)server/all/log目录 (13)server/all/tmp目录,JBoss中的部署,任何“.jar”库 EJB JAR WAR EAR 包含JBoss MBean定义的X
12、ML文件 一个包含EJB JAR、WAR或者是EAR的解压缩内容,并以“.jar”、“.war”或者以“.ear”结尾的目录。,可以把下列文件部署到JBoss中:,本章总结,EJB概述 传统EJB同新一代EJB的对比 EJB3.0开发运行环境和配置 运行一个简单的EJB3.0的例子 JBoss服务器详细介绍 JBoss服务的部署,动手实践:第一个EJB程序,尝试 EJB 编程,Hello World!,目标 本体验项目用EJB组件简单的实现了在浏览器上显示“Hello World!”字符串的功能。 启动JBoss服务器,将本项目的EJB组件包“HelloWorld.jar”和Web 应用包“E
13、jbTest.war”(该包中有HelloWorldTest.jsp文件)复制到“JBoss安装目录/server/default/deploy”目录下。 观察JBoss的运行状态,部署成功后在浏览器的地址栏中输入:“http:/localhost:8080/EjbTest/HelloWorldTest.jsp”,如果能够看到图1-1所示页面的“Hello World!”字符串的话,那么你已经简单学会了部署EJB组件以及在Web应用程序中调用EJB组件的技术。,图1-1 测试页面运行结果,基本思路,(1)做一个简单的EJB组件,打包并部署到JBoss服务器中。 (2)在Web应用中调用此EJB
14、组件中的Bean类,在页面上输出字符串“Hello World!”。 (3)将Web应用程序打包成war文件并部署到JBoss服务器中,在浏览器中测试效果。,(1)编写一个EJB的接口类:HelloWorld类,定义一个返回字符串的方法:hello()方法,参考代码如下: package com.ejb3; public interface HelloWorld public String hello(); ,(2)编写一个EJB的实现类,Session Bean:HelloWorldBean,Remote类型,在hello()方法的实现中返回一个“Hello World”的字符串,代码如下: package com.ejb3; import javax.ejb.Remote; import javax.ejb.Stateless; Stateless Remote(HelloWorld.class) public class HelloWorldBean implements HelloWorld public String hello() return Hello World!; ,(3)在Web应用中调用EJB组件,新建一个JSP页面:HelloWorldTest.jsp,代码如下: My JSP HelloWorld.jsp starting page , ,