第2章EJB开发基础第2章EJB开发基础2.1开发环境和工具2.2开发一个简单的EJB第2章EJB开发基础一、J2EE平台及安装与设置1.J2EE组件层次J2EE提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如EJB组件在EJB容器上运行),容器间通过相关协议进行通讯,实现组件间相互调用。2.1开发环境和工具第2章EJB开发基础J2EE规范定义了如下组件:★客户端组件★Web组件★EJB组件J2EE规范定义了以下四个层次:(1)客户端层(ClientTier)客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些客户端程序也可实现业务逻辑。可分为基于Web的和非基于Web的客户端两种情况。2.1开发环境和工具第2章EJB开发基础基于Web的情况下主要作为企业Web服务器的浏览器。非基于Web的客户层则是独立的应用程序,可以完成瘦客户机无法完成的任务。(2)Web层为企业提供Web服务。包括企业信息发布等。Web层由Web组件组成。J2EEWeb组件包括JSP页面和Servlets。Web层也可以包括一些JavaBeans。2.1开发环境和工具第2章EJB开发基础Web层主要用来处理客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。(3)业务层(BusinessTier)业务层也叫EJB层或应用层,它由EJB服务器和EJB组件组成。一般情况下许多开发商把Web服务器和EJB服务器产品结合在一起发布,称为应用服务器。EJB层用来实现企业级信息系统的业务逻辑。这是企业级应用的核心。2.1开发环境和工具第2章EJB开发基础由运行在业务层的EJB来处理Bean。一个Bean从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。同样,一个Bean也可以从企业信息系统取出数据,发送到客户端程序。业务层中的EJB要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程安全管理、资源池等。2.1开发环境和工具第2章EJB开发基础(4)企业信息系统层(EnterpriseInformationSystemtier)处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。J2EE将来的版本支持连接架构(ConnectorArchitecture)。它是连接J2EE平台和企业信息系统层的标准API。2.1开发环境和工具第2章EJB开发基础2.J2EE的分布应用技术为实现企业级分布式应用,J2EE定义了丰富的技术标准,符合这些标准的开发工具和API为开发企业级应用提供支持。这些技术涵盖数据库访问、分布式通信、安全等。为分布式应用提供支持的多方面。(1)组件技术J2EE的核心思想是基于组件/容器的应用。每个组件提供了方法、属性、事件的接口。2.1开发环境和工具第2章EJB开发基础组件可以由多种语言开发。组件是可以重用的、共享的、分布的。(2)Servlets和JSPServlets用来生成动态页面或接收用户请求产生相应操作(调用EJB)。JSP基于文本。通过容器产生相应的Servlets,使内容和显示分开。J2EE中提供了ServletAPI,用于创建Servlets。2.1开发环境和工具第2章EJB开发基础(3)EJB技术EJB规范提供了一种开发和部署服务器端组件的方法。每个EJB是按功能逻辑划分的,开发时不必关注系统底层细节问题,只关注具体的事务分析。EJB开发完毕后,按规范部署在EJB容器,完成相应的事务功能。EJB支持分布式计算。真正体现了企业级的应用。2.1开发环境和工具第2章EJB开发基础(4)数据库访问无论是传统的还是将来的企业信息系统,数据库都占有重要的地位。开发分布式系统要求数据库访问具有良好的灵活性和扩展性。JDBC是一个独立于特定的数据库管理系统的开发接口。它提供一个通用的访问SQL数据库和存储结构的机制,是支持基本SQL功能的通用底层的应用程序编程接口。2.1开发环境和工具第2章EJB开发基础它在不同的数据库界面上提供了一个统一的用户界面。提供了多种多样的数据库连接方式。J2EE中提供了JDBCAPI使多种数据库操作简单、可行。(5)分布式通信技术分布式通信技术是分布式企业系统的核心技术。J2EE框架为Web应用和EJB应用提供多种通信模式。2.1开发环境和工具第2章EJB开发基础为了使运行于某一机器上的对象调用另一台机器的对象,J2EE实现了如下通信方式:JavaRMI(RemoteMethodInvoke):远程方法调用。JavaRMI实现Java对象间的远程通信。服务器用注册器把一个名字和远程对象绑在一起,客户机通过名字从服务器注册器上查找远程对象,找到后下载远程对象的本地代理,调用远程对象的方法。2.1开发环境和工具第2章EJB开发基础JavaIDL(JavaInterfaceDefilationLanguage):接口定义语言。可以实现Java对象的符合CORBA规范的远程对象通信。JNDI(JavaNamingandDirectoryInterface):Java命名和目录接口。JNDI为分布式系统访问远程对象提供了一个标准的命名接口。EJB主接口对象、数据源、消息服务器等都可以用JDNI树的形式注册到名称服务器中。2.1开发环境和工具第2章EJB开发基础EJB调用它们的对象通过符合JDNI的程序接口在JNDI名称服务器中查找指定名称的远程对象。JMS(JavaMessageService):Java消息服务。为开发消息中间件应用程序定义了一套规范。Java客户端和Java中间层访问消息系统只要实现JMS定义的简单的接口,就可以实现复杂的应用,而不必去关注低级的技术细节。2.1开发环境和工具第2章EJB开发基础3.J2EE平台及安装与设置在安装和实现J2SDKEE1.3.1涉及3个过程:设置开发环境;设置应用环境;做好操作准备。(1)设置开发环境.下载和安装JDK1.3.1.下载和安装J2SDKEE1.3.1.设置环境变量2.1开发环境和工具第2章EJB开发基础.完成J2SDKEE1.3.1在目标系统中的附加配置.测试环境(2)设置应用环境.建立一个源目录.设置一个数据库.为JMS设置资源.创建一个J2EE用户帐户2.1开发环境和工具第2章EJB开发基础(3)使J2SDKEE做好操作准备.启动J2EE服务器.关闭J2EE服务器.调试错误行为.定位log文件.规定GUI部署工具的替代品2.1开发环境和工具第2章EJB开发基础二、J2EE测试平台安装J2EE应用开发、测试或运行需要应用服务器的支持。下面以Windows版的WebLogicServer6.0sp2测试版为J2EE应用程序的运行平台,关于WebLogicServer6.0sp2测试版的免费获取和产品注册请参阅Bea中国公司的网站。2.1开发环境和工具第2章EJB开发基础WebLogicServer6.0sp2测试版的安装程序做成了一个独立的压缩包运行程序——weblogic600sp2_win.exe。这个文件大概有60M,需要硬盘110M左右的空间。可在Windows2000Professional简体中文版操作系统下运行这个程序,按照每个安装界面的提示进行安装。具体如下:2.1开发环境和工具第2章EJB开发基础(1)在资源管理器中,双击weblogic600sp2_win.exe,运行WeblogicServer6.0sp2测试版的安装程序。首先出现欢迎界面。(2)点击Next按钮,出现关于授权协议的条款,选中“Yes”。(3)点击Next按钮,选择安装集。选中ServerWithExample字体左边的按钮。2.1开发环境和工具第2章EJB开发基础(4)点击Next按钮,选择BEAHome目录和安装目录,可以采用缺省目录C:\bea和C:\bea\wlserver6.0。(5)点击Next按钮,进行缺省的服务器配置。设定域名、服务器名、端口号等。(6)点击Next按钮,确定是否把WebLogic作为Windows的服务。这里采用缺省的“No”,2.1开发环境和工具第2章EJB开发基础(7)点击Next按钮,创建系统级密码,注意密码长度至少8个字符。(8)点击Next按钮,进入安装过程,出现安装进度条。(9)进度完成后,点击Done按钮完成安装。2.1开发环境和工具第2章EJB开发基础1.管理服务器WebLogicServer6.0采用一套独特的管理方法。服务器可以定义几个同等地位的域(Domain),但对于一个WebLogicServer主机来说,同时只能启动一个域。在域中定义几个服务器(Server),这些服务器中必须有一个称作系统管理服务器(AdministrationServer),其余称作被管理的服务器(ManagedServers)。2.1开发环境和工具第2章EJB开发基础在一个域中,只能有而且必须要有一个系统管理服务器,但可以有多个被管理的服务器。在WebLogicServer6.0版本中,每个域对应一个独立的子目录,这些目录位于config子目录下。缺省安装的情况下,WebLogicServer6.0有三个域,分别是mydomain,examples和petstore。它们对应config目录下的与域名相同的三个子目录名。2.1开发环境和工具第2章EJB开发基础WebLogicServer6.0缺省的三个域各有各的用途,examples域集中给出了各种实例程序,用户可以直接进行运行测试;petstore是个具体的电子商务应用实例,用户也可以进行运行测试;mydomain是供用户建立用户开发的应用的域,缺省情况下,它不包含任何应用。在域子目录下是应用子目录和服务器运行等脚本文件。2.1开发环境和工具第2章EJB开发基础2.域服务器和管理控制台安装完WebLogicServer6.0sp2后,可以通过开始菜单来运行域服务器。因为有三个缺省的域,所以开始菜单中有三个运行域的快捷菜单项。可启动域名为mydomain的服务器,也可以直接运行C:\bea\wlserver6.0\config\mydomain目录下命令脚本startWebLogic.cmd来启动域服务器。2.1开发环境和工具第2章EJB开发基础输入密码,服务器正确启动后,可以进行测试了。打开浏览器,在地址栏中输入的系统管理采用Web应用的方式,系统管理是通过浏览器进行的。启动系统管理控制台程序要求输入系统密码。2.1开发环境和工具第2章EJB开发基础用户名一定是system,密码就是在安装WebLogicServer的过程中设定的系统密码。密码正确,就进入系统管理程序界面。WebLogicServer6.0的系统管理程序的启动也可以直接在浏览器的地址栏中输入,然后回车。注意:同时只能启动一个域服务器。2.1开发环境和工具第2章EJB开发基础3.操作域服务器操作域服务器通过系统管理程序可以挂起、恢复和停止域服务器。下面是通过console页面程序进行这些操作:(1)打开服务器管理控制台程序。即浏览。(2)点击左侧树状视图:“mydomain”-“Servers”-“myserver”。2.1开发环境和工具第2章EJB开发基础(3)点击右侧视图的“Monitoring”页。(4)点击视图中的“Shutdownthisserver...”,就可以关闭服务器,服务器挂起和恢复分别点击“Suspendthisserver...”和“Resumethisserver...”。2.1开发环境和工具第2章EJB开发基础无论哪种类型的EJB应用程序,它们的开发步骤都是类似的。