EJB 知识与运行环境配置

转载地址:http://fly-sky.iteye.com/blog/888521

1.1 什么是 Enterprice JavaBeans(EJB) 

Enterprice JavaBeans 是一个用于分布式业务应用的标准服务端组件模型。采用Enterprice JavaBeans 架构编写的应用是可伸的、事务性的、多用户安全的。可以一次编写这些应用,然后部署在任何支持 Enterprice JavaBeans 规范的服务器平台,如 jboss、weblogic 等。 

实体 Bean(Entity Bean) 
Enterprise JavaBean(EJB)定义了三种企业 Bean,分别是会话 Bean(Session Bean)和消息驱动 Bean(MessageDriven Bean)。 

会话 Bean 
会话 Bean 用于实现业务逻辑,它分为有状态 bean 和无状态 bean。每当客户端发出 EJB 调用请求时,容器就会选择一个 Session Bean 来为客户端服务。会话 Bean 可以直接访问数据库,但更多时候,它是通过实体 Bean 实现数据访问。 

实体 Bean: 
从名字上我们就能猜到,实体 bean 代表真实物体的数据。 EJB3.0 中,在实体 bean 仅作为普通 Java 对象来使用,它负责跟数据库表进行对象与关系映射(O/R Mapping)。 


消息驱动 Bean(MDB): 
MDB 是设计用来专门处理基于消息请求的组件。它能够收发异步 JMS 消息,并能够轻易地与其他 EJB 交互。它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈的这样一个场合。 


  1.2 EJB 的运行环境 

EJB 需要运行在 EJB 容器,每个 JavaEE 应用服务器都含有 EJB 容器和 Web 容器,所以既可以运行 EJB,也可以运行 Web 应用。目前支持 EJB3.0 的应用服务器有 Jboss(4.2.x 以上版本) 、Glassfish、Weblogic(10 以上版本)、Sun Application Server(9.0 以上版本)、Oracle Application Server(10g 以上版本)和我们国内的 apusic 应用服务器。本书将介绍 Jboss 和 Weblogic,前者是使用者最多的开源应用服务器,后者是市场占有率最高的商业应用服务器。 
注意:Tomcat 目前只是 Web 容器,它不能运行 EJB 应用。 


  1.3 什么是 JNDI 

JNDI 是自 JDK1.3 版本开始就绑定的标准 Java API。它为各种现有的命名和目录服务提供了通用接口:DNS、LDAP、活动目录(Active Directory)、RMI 注册器、COS 注册器、NIS 及文件系统。在结构上,JNDI 由两部分组成:客户 API 和服务提供商接口(Service Provider Intergace,SPI),应用程序通过客户 API 访问命名和目录服务;服务提供商接口用于供厂商创建命名和目录服务的 JNDI 实现。下面是 JNDI 的结构图: 
 
对于 EJB 开发者来说,我们只需要知道使用客户 API 如何访问命名和目录服务即可,而不需要知道 JNDI SPI 的使用,因为我们不需要使用 JNDI SPI 开发 JNDI 实现产品,这就好比通过 JDBC 访问数据库,我们只需要知道使用 JDBC API 如何访问数据库,而不需要知道数据库的 JDBC 驱动如何实现。使用客户 API 访问 EJB3.0,我们需要编写的 JNDI 代码不过几句,所以大家不要被吓倒了。 

命名服务用于将名称和对象联系起来,使得我们可以用名称访问对象。例如,当你在 web 浏览器输入 URL:http://www.foshanshop.net 时,DNS(Domain Name System,域名系统)将这个域名转换成 IP 地址。目录服务是命名服务的自然扩展,在这种服务里,对象不但有名称,还有属性。与命名服务的关键差别是:目录服务中对象可以有属性(例如,用户有 email 地址),而命名服务中对象没有属性。 

  1.4 下载与安装 JDK 

进入 http://java.sun.com/javase/downloads/index_jdk5.jsp 下载 JDK。在页面中找到 JDK 5.0 Update 14(版本在不断更新中,有可能大于 14) 点击右边的wnload,注意中间有 Accept 和 Decline 两选项,点选 Accept。 Windows在Platform 一栏找到 Windows Offline Installation, Multi-language 这个链接,点击下载。     (注:本书光盘“软件”文件夹中带有 JDK 5.0) 
按照安装向导提示安装,安装路径选择 C:\Java\jdk1.5.0_14。 安装完后,接着问你是否安装 jre,也一起安装上。

右键点击“我的电脑”->“属性”->“高级”->“环境变”,在“系统变量”里添加 JAVA_HOME 变量,值为JDK 的安装路径,如:C:\ Java\jdk1.5.0_14。在“系统变量”里再添加 CLASSPATH 变量,值为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;在系统变量栏找到变量名为 Path 的选项,点“编辑”在变量值的末尾添加;%JAVA_HOME%\bin; 
  
   1.5 下载与安装 Eclipse 

下载地址:http://www.eclipse.org/downloads 
在页面上选择下载:Eclipse IDE for Java EE Developers 
下载后直接解压缩即可完成安装。 

  1.6 下载与安装 jboss 

进入 http://labs.jboss.com/jbossas/downloads/下载页面,选择 jboss4.2.2.GA 文件下载(大小为 92MB)。下载后直接解压缩文件即可完成安装,为了避免应用出现莫名的错误,解压缩的路径最好不要带有空格,“Program Files” 如 。注:本书配套光盘“软件”文件夹中已经带有 Jboss4.2.2.GA 安装包。安装完后请右键点击“我的电脑”->“属性”->“高级”->“环境变量” ,在“系统变量”里添加JBOSS_HOME变量,值为 Jboss 的安装路径,如:D:\JavaEEServer\jboss。 
在系统变量一栏找到变量名为 Path 的选项,点“编辑”在变量值的末尾添加:;%JBOSS_HOME%\bin;现在验证 Jboss 安装是否成功, 进入[jboss 安装目录]\bin 目录,双击 run.bat 启动 jboss。观察控制台有没有 Java例外抛出,如果没有例外并看到,恭喜你,安装成功了。 

你可以输入 http://localhost:8080 进入 Jboss 的欢迎主页。 JBoss Management 栏点击在“JMX Console”进入 Jboss的管理平台。如果需要输入用户名及密码,默认的用户名及密码都是 admin。如果 jboss 启动出错,   应检查打印在 Jboss 控制台的 JDK 版本是否 5.0 以上,jboss 所用的端口是否被占用(如 1099,8009 ,8080 等端口)。你可以使用本书提供的端口查看器 ActivePort.exe(在光盘“软件”文件夹下)查看端口使用情况,如果端口被占用就关闭占用此端口的进程。如果启动时出现这样的错误:“findstr 不是内部或外部命令,也不是可运行的程序或批处理文件”。那么应该在系统变量 Path 中追加“%SystemRoot%\system32;%SystemRoot%;”。 
最后的办法是重装机器上的 JDK,祝你好运。 

  1.7 运行第一个 EJB3 例子 

Jboss 安装成功后,得来一个真家伙试试。在本书配套光盘的 HelloWorld 文件夹下,找到 HelloWorld.jar,把该文件拷贝到“jboss 安装目录/server/default/deploy/”目录下,jboss 会对 HelloWorld 进行热部署。接下来继续把 EJBTest文件夹下的 EJBTest.war 拷贝到“jboss 安装目录/server/default/deploy/”。 
在浏览器上输入:http://localhost:8080/EJBTest/Test.jsp(注意大小写)。 

  1.8 熟悉 JBoss 的目录结构 

安装 JBoss 会创建下列目录结构: 
   目录                 描述 

  bin                启动和关闭 JBoss 的脚本 
  
client              客户端与 JBoss 通信所需的 Java 库(JAR) 
  
  docs               配置文件的例子(数据库配置等) 
  
docs/dtd            在 JBoss 中使用的各种 XML 文件的 DTD。 
  
  lib                JBoss 启动时使用到的 JAR,这些库为所有 JBoss 配置所共享。(不要把你的库放在这里) 

  server             各种JBoss配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。 
                     JBoss 包含 3 个默认的配置:minimal,default 和 all。 

server/all         JBoss 的完全配置,启动所有服务,包括集群和 IIOP。 
  
server/minimal      这是启动 JBoss 服务器所要求的最低配置。minimal 配置将启动日志服务、JNDI 服  
                       务器以及 URL 部署扫描器,以找到待部署的(新)应用。对于那些不需要使用任 
                       何其他 J2EE 技术,而只是使用自定义服务的场合而言,则这种配置最适合。它仅 
                       仅是服务器,而不包含 Web 容器、不提供 EJB 和 JMS 支持。 

server/default        默认配置,它含有大部分 J2EE 应用所需的标准服务。但是,它不含有 JAXR 服务、 
                       IIOP 服务、或者其他任何群集服务。如果在 JBoss 命令行中没有指定配置名称,则 
                       默认使用此配置。(本教程就采用此配置) 

server/default/conf    JBoss 的配置文件。如:log4j.xml 是 Log4j 日志配置文件,login-config.xml 是 Jboss 
                       安全配置文件,jboss-service.xml 配置在 jboss 启动时开启的 Jboss 服务(像类加载 
                       器,JNDI,部署工具等)   ,jbossmq-state.xml 是 JbossMQ(JMS 实现)的用户配置 
                       文件。 

server/default         JBoss 的热部署目录。任何位于此目录下的文件或目录都会被自动部署。如:EJB、 
/deploy               WAR、EAR,甚至服务。 
               
server/default/lib    一些 JAR,JBoss 启动 default 配置时会加载它们。 

                       日志信息将存储到该目录。JBoss 使用 Jakarta Log4j 包作为其日志功能。同时,用 
server/default/log    户可以在应用中直接使用 Log4j 日志记录功能。 

                       这一目录存储持久化数据,即使服务器发生重启其中的数据也不会丢失。许多 JBoss 
server/default/data   服务将数据存储在这里,比如 Hypersonic 数据库实例。 

server/default/tmp    供部署器临时存储未打包应用使用,也可以作为其他用途。 

server/default/work    供 Tomcat 编译 JSP 使用。 

其中,log、data、tmp、work 目录是 JBoss 创建的。如果用户没有启动过 JBoss 服务器,则这些目录不会被创建。 

1.9 在 JBoss 部署应用 

在 JBoss 部署应用的过程非常简单、直接。在每一个配置中,Jboss 会不断扫描一个名为[jboss 安装目录]/server/config-name/deploy 的特定目录,查看是否有任何更新,此目录一般被称为“部署目录” 。 
你可以把下列文件拷贝到部署目录中: 
 任何 Java 库(其中的类将被自动添加到 JBoss 的 classpath 中) 
 EJB-JAR 
 WAR (Web Appliction aRrchive) 
 EAR (Enterprise Application aRchive) 
 包含 JBoss MBean 定义的 XML 文件 
 以.jar、.war 或者.ear 结尾的目录,分别包含了 EJB-JAR、WAR 或者 EAR 的解压缩内容。要重新部署上述文件(JAR、WAR、EAR、XML 等),只需用更新后的版本覆盖即可。Jboss 将通过对比时间戳来检测变化,卸载旧文件,部署相应的新文件。如果要重新部署目录,只需更新其时间戳即可。从部署目录中删除文件会导致相应文件从部署中卸载。 

1.10 如何恢复本书配套例子的开发环境 

如果你尚未安装 Eclipse,请先安装。然后打开本书配套光盘的“sourcecode”文件夹,把文件夹下的所有项目拷贝到工作区,如:E:\JavaProject,去掉文件的只读属性。在Eclipse 上点击“File”->“import”: 

在上面窗口中展开“General”文件夹,选择“Existing Projects into Workspace”,点击“Next”, 

在上面窗口中定位到项目所在目录,Eclipse 能检测到目录下的所有项目,全选所有项目,然后点击“Finish”,所选项目将出现在 Eclipse 的项目面板中,我们看到,很多项目都打了红叉,这是因为项目使用到的 JRE、Junit 和 Jave 库文件路径不正确。只要我们把它们删除,并重新添加就可以解决。项目使用到的 JAR 可以在[Jboss 安装目录]\client 下得到,个别项目使用到了本书提供的 JAR,这些 JAR 可以在光盘的 sourcecode\lib 目录下得到。下面我们以 HelloWorld 项目为例, 
介绍如何更正这些错误: 
在“HelloWorld” 项目上点击鼠标右键,在属性菜单中点击“Properties”,在出现的窗口中点击框架左边的“JavaBuild Path” 点击框架右边 

的“Libraries”, 

你需要把上图出现的 Java 库、System Library和Junit4全部删除,然后重新添加。首先添加“JRE System Library”,JRE操作步骤如下: 
点击“Add Library”, 

在上面窗口,选择“JRE System Library”,点击“Next”, 

在上面窗口,选择你要使用的 JRE,点击“Finish”完成 JRE System Library 的添加。窗口回到了“Libraries”界面,接着添加 Jboss 客户端 

JAR,操作如下: 
点击“Add External JARs”,在出现的窗口中定位到[Jboss 安装目录]\client 目录下,然后 Ctrl+A 全选所有JAR 文件。点击“打开”便完成了 

Jboss 客户端 JAR 的添加。 

如果项目中使用了 Junit,你还需要添加 Junit 库,操作如下: 
点击“Add Library”,在出现的窗口中选择“Junit”,点击“Next”, 

在上面窗口中,选择“Junit4”,点击“Finish”完成 Junit 库的添加。 
点击“OK”回到项目面板,此时,HelloWorld”项目的红叉已经不见了。你可以按照上面方法更正其它项目。 

注意: weblogic 的例子需要用到 JRE1.6,使用到的 JAR 分别是:光盘\sourcecode\lib\javaee\javaee.jar 和[weblogic安装目录] 

\server\lib\weblogic.jar。你不需要放入 Jboss 的客户端 JAR。 

执行项目中的 Ant 任务 
每个项目下都有一个 build.xml 文件,该文件是 Ant 的配置文件,打开该文件,在“Outline”视图中显示了 Ant 
的每一项任务(前面带圆圈图标), 

如果你的 Eclipse 没有 “Outline”视图,你可以点击“Window”-“Show View”-“ Outline”。 
在你要执行的任务上点击鼠标右键,在出现的属性菜单中点击“Run As”-“Ant Build”运行该任务, 

运行单元测试用例 
有些项目带有单元测试用例,文件在以“junit”开头的包下。打开这些单元测试用例,在“Outline”视图中显示 
了单元测试的每一个测试方法, 

你可以在需要测试的方法上面点击鼠标右键,在出现的属性菜单中点击“Run As”-“Junit Test”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值