《EJB3中文实例教程课件.ppt》由会员分享,可在线阅读,更多相关《EJB3中文实例教程课件.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 EJB开发基础 2.1 开发环境和工具 2.2 开发一个简单的EJB An Introduction to Database Systenm一、J2EE平台及安装与设置 1.J2EE组件层次 J2EE提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如EJB组件在EJB容器上运行),容器间通过相关协议进行通讯,实现组件间相互调用。2.1 开发环境和工具An Introduction to Database Systenm J2EE规范定义了如下组件:客户端组件
2、 Web组件 EJB组件J2EE规范定义了以下四个层次:(1)客户端层(Client Tier)客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些客户端程序也可实现业务逻辑。可分为基于Web的和非基于Web的客户端两种情况。2.1 开发环境和工具An Introduction to Database Systenm 基于Web的情况下主要作为企业Web服务器的浏览器。非基于Web的客户层则是独立的应用程序,可以完成瘦客户机无法完成的任务。(2)Web层为企业提供Web服务。包括企业信息发布等。Web层由Web组件组成。J2EE Web组件包括JSP页面和Servlets。Web层也可
3、以包括一些JavaBeans。2.1 开发环境和工具An Introduction to Database Systenm Web层主要用来处理客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。(3)业务层(Business Tier)业务层也叫EJB层或应用层,它由EJB服务器和EJB组件组成。一般情况下许多开发商把Web服务器和EJB服务器产品结合在一起发布,称为应用服务器。EJB层用来实现企业级信息系统的业务逻辑。这是企业级应用的核心。2.1 开发环境和工具An Introduction to Database Systenm 由运行在业务层的EJB来处理Bean。一个B
4、ean从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。同样,一个Bean也可以从企业信息系统取出数据,发送到客户端程序。业务层中的EJB要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程安全管理、资源池等。2.1 开发环境和工具An Introduction to Database Systenm(4)企业信息系统层(Enterprise Information System tier)处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。J2EE将来的版本支持连接架构(Connector Architecture)。它是连接J2EE平台和企业
5、信息系统层的标准API。2.1 开发环境和工具An Introduction to Database Systenm 2.J2EE的分布应用技术为实现企业级分布式应用,J2EE定义了丰富的技术标准,符合这些标准的开发工具和API为开发企业级应用提供支持。这些技术涵盖数据库访问、分布式通信、安全等。为分布式应用提供支持的多方面。(1)组件技术J2EE的核心思想是基于组件/容器的应用。每个组件提供了方法、属性、事件的接口。2.1 开发环境和工具An Introduction to Database Systenm 组件可以由多种语言开发。组件是可以重用的、共享的、分布的。(2)Servlets和J
6、SPServlets用来生成动态页面或接收用户请求产生相应操作(调用EJB)。JSP基于文本。通过容器产生相应的Servlets,使内容和显示分开。J2EE中提供了Servlet API,用于创建Servlets。2.1 开发环境和工具An Introduction to Database Systenm(3)EJB技术EJB规范提供了一种开发和部署服务器端组件的方法。每个EJB是按功能逻辑划分的,开发时不必关注系统底层细节问题,只关注具体的事务分析。EJB开发完毕后,按规范部署在EJB容器,完成相应的事务功能。EJB支持分布式计算。真正体现了企业级的应用。2.1 开发环境和工具An Intr
7、oduction to Database Systenm(4)数据库访问无论是传统的还是将来的企业信息系统,数据库都占有重要的地位。开发分布式系统要求数据库访问具有良好的灵活性和扩展性。JDBC是一个独立于特定的数据库管理系统的开发接口。它提供一个通用的访问SQL数据库和存储结构的机制,是支持基本SQL功能的通用底层的应用程序编程接口。2.1 开发环境和工具An Introduction to Database Systenm 它在不同的数据库界面上提供了一个统一的用户界面。提供了多种多样的数据库连接方式。J2EE中提供了JDBC API使多种数据库操作简单、可行。(5)分布式通信技术分布式通
8、信技术是分布式企业系统的核心技术。J2EE框架为Web应用和EJB应用提供多种通信模式。2.1 开发环境和工具An Introduction to Database Systenm 为了使运行于某一机器上的对象调用另一台机器的对象,J2EE实现了如下通信方式:Java RMI(Remote Method Invoke):远程方法调用。Java RMI实现Java对象间的远程通信。服务器用注册器把一个名字和远程对象绑在一起,客户机通过名字从服务器注册器上查找远程对象,找到后下载远程对象的本地代理,调用远程对象的方法。2.1 开发环境和工具An Introduction to Database S
9、ystenm Java IDL(Java Interface Defilation Language):接口定义语言。可以实现Java对象的符合CORBA规范的远程对象通信。JNDI(Java Naming and Directory Interface):Java命名和目录接口。JNDI为分布式系统访问远程对象提供了一个标准的命名接口。EJB主接口对象、数据源、消息服务器等都可以用JDNI树的形式注册到名称服务器中。2.1 开发环境和工具An Introduction to Database Systenm EJB调用它们的对象通过符合JDNI的程序接口在JNDI名称服务器中查找指定名称的远
10、程对象。JMS(Java Message Service):Java消息服务。为开发消息中间件应用程序定义了一套规范。Java客户端和Java中间层访问消息系统只要实现JMS定义的简单的接口,就可以实现复杂的应用,而不必去关注低级的技术细节。2.1 开发环境和工具An Introduction to Database Systenm 3.J2EE平台及安装与设置 在安装和实现J2SDKEE1.3.1涉及3个过程:设置开发环境;设置应用环境;做好操作准备。(1)设置开发环境.下载和安装JDK1.3.1.下载和安装J2SDKEE1.3.1.设置环境变量2.1 开发环境和工具An Introduct
11、ion to Database Systenm.完成J2SDKEE1.3.1在目标系统中的附加配置.测试环境(2)设置应用环境.建立一个源目录.设置一个数据库.为JMS设置资源.创建一个J2EE用户帐户2.1 开发环境和工具An Introduction to Database Systenm(3)使J2SDKEE做好操作准备.启动J2EE服务器.关闭J2EE服务器.调试错误行为.定位log文件.规定GUI部署工具的替代品2.1 开发环境和工具An Introduction to Database Systenm 二、J2EE测试平台安装 J2EE应用开发、测试或运行需要应用服务器的支持。下面
12、以Windows版的WebLogic Server 6.0sp2测试版为J2EE应用程序的运行平台,关于WebLogic Server 6.0sp2测试版的免费获取和产品注册请参阅Bea中国公司的网站。2.1 开发环境和工具An Introduction to Database Systenm WebLogic Server 6.0sp2测试版的安装程序做成了一个独立的压缩包运行程序weblogic600sp2_win.exe。这个文件大概有60M,需要硬盘110M左右的空间。可在Windows2000 Professional简体中文版操作系统下运行这个程序,按照每个安装界面的提示进行安装。
13、具体如下:2.1 开发环境和工具An Introduction to Database Systenm(1)在资源管理器中,双击weblogic600sp2_win.exe,运行Weblogic Server 6.0sp2测试版的安装程序。首先出现欢迎界面。(2)点击Next按钮,出现关于授权协议的条款,选中“Yes”。(3)点击Next按钮,选择安装集。选中Server With Example字体左边的按钮。2.1 开发环境和工具An Introduction to Database Systenm(4)点击Next按钮,选择BEA Home目录和安装目录,可以采用缺省目录C:bea和C:
14、beawlserver6.0。(5)点击Next按钮,进行缺省的服务器配置。设定域名、服务器名、端口号等。(6)点击Next按钮,确定是否把WebLogic作为Windows的服务。这里采用缺省的“No”,2.1 开发环境和工具An Introduction to Database Systenm(7)点击Next按钮,创建系统级密码,注意密码长度至少8个字符。(8)点击Next按钮,进入安装过程,出现安装进度条。(9)进度完成后,点击Done按钮完成安装。2.1 开发环境和工具An Introduction to Database Systenm 1.管理服务器WebLogic Server
15、 6.0采用一套独特的管理方法。服务器可以定义几个同等地位的域(Domain),但对于一个WebLogic Server主机来说,同时只能启动一个域。在域中定义几个服务器(Server),这些服务器中必须有一个称作系统管理服务器(Administration Server),其余称作被管理的服务器(Managed Servers)。2.1 开发环境和工具An Introduction to Database Systenm 在一个域中,只能有而且必须要有一个系统管理服务器,但可以有多个被管理的服务器。在WebLogic Server 6.0版本中,每个域对应一个独立的子目录,这些目录位于con
16、fig子目录下。缺省安装的情况下,WebLogic Server 6.0有三个域,分别是mydomain,examples和petstore。它们对应config目录下的与域名相同的三个子目录名。2.1 开发环境和工具An Introduction to Database Systenm WebLogic Server 6.0缺省的三个域各有各的用途,examples域集中给出了各种实例程序,用户可以直接进行运行测试;petstore是个具体的电子商务应用实例,用户也可以进行运行测试;mydomain是供用户建立用户开发的应用的域,缺省情况下,它不包含任何应用。在域子目录下是应用子目录和服务器
17、运行等脚本文件。2.1 开发环境和工具An Introduction to Database Systenm 2.域服务器和管理控制台 安装完WebLogic Server 6.0sp2后,可以通过开始菜单来运行域服务器。因为有三个缺省的域,所以开始菜单中有三个运行域的快捷菜单项。可启动域名为mydomain的服务器,也可以直接运行 C:beawlserver6.0configmydomain 目录下命令脚本startWebLogic.cmd来启动域服务器。2.1 开发环境和工具An Introduction to Database Systenm 输入密码,服务器正确启动后,可以进行测试了。
18、打开浏览器,在地址栏中输入 http:/localhost:7001/WebLogic Server 6.0的系统管理采用Web应用的方式,系统管理是通过浏览器进行的。启动系统管理控制台程序要求输入系统密码。2.1 开发环境和工具An Introduction to Database Systenm 用户名一定是system,密码就是在安装WebLogic Server的过程中设定的系统密码。密码正确,就进入系统管理程序界面。WebLogic Server 6.0的系统管理程序的启动也可以直接在浏览器的地址栏中输入 http:/localhost:7001/console/,然后回车。注意:同
19、时只能启动一个域服务器。2.1 开发环境和工具An Introduction to Database Systenm 3.操作域服务器 操作域服务器通过系统管理程序可以挂起、恢复和停止域服务器。下面是通过console页面程序进行这些操作:(1)打开服务器管理控制台程序。即浏览http:/127.0.0.1:7001/console。(2)点击左侧树状视图:“mydomain”-“Servers”-“myserver”。2.1 开发环境和工具An Introduction to Database Systenm(3)点击右侧视图的“Monitoring”页。(4)点击视图中的“Shutdown
20、 this server.”,就可以关闭服务器,服务器挂起和恢复分别点击“Suspend this server.”和“Resume this server.”。2.1 开发环境和工具An Introduction to Database Systenm 无论哪种类型的EJB应用程序,它们的开发步骤都是类似的。掌握了一个简单EJB的开发过程,就可以进一步开发更加复杂的应用。本章假设读者从来没有开发过EJB,也不具备EJB的任何知识而准备以最简捷的方式开发出一个简单的EJB应用。本节介绍开发一个简单的EJB,假设你安装了WebLogic Server 6.0sp2。本节实例的名字叫HelloWo
21、rldEJB。2.2 开发一个简单的EJBAn Introduction to Database Systenm HelloWorldEJB的功能是:它只有一个简单的方法sayHello,用来模拟业务逻辑。客户端调用这个方法,获取字符串并显示出来。1.准备工作(1)确定工作目录 假定你指定了一个存放源程序的目录,可以把它叫做工作目录,工作目录确定为c:work。2.2 开发一个简单的EJBAn Introduction to Database Systenm(2)编写环境变量脚本 开发Java程序过程中,环境变量是程序员要管理的一件事。这些环境变量包括系统环境变量,如path、classpat
22、h和用户定义的环境变量。当环境变量较少时,可以直接把它们设置成系统级的,但如果环境变量较多,就不适宜把它们都设成系统级的,这时用一个脚本程序来设置这些环境变量是个很的选择。2.2 开发一个简单的EJBAn Introduction to Database Systenm 在本节中用到的所有实例的环境变量,包括系统级的和用户级的,都用一个环境变量脚本程序来设置。在具体使用的时候,无论是编译,还是执行,只要先运行一下这个脚本命令即可。这个脚本命令名为setEnv.cmd,放在C:work目录下,可以在命令窗口的任何路径下运行,运行命令如下:c:worksetEnv.cmd2.2 开发一个简单的EJ
23、BAn Introduction to Database Systenm setEnv.cmd的其代码如下:rem 设置系统信息set JAVA_HOME=C:beajdk130set WL_HOME=c:beawlserver6.0set DOMAIN_NAME=mydomain rem 以下不用修改set path=%path%;%JAVA_HOME%bin 2.2 开发一个简单的EJBAn Introduction to Database Systenm set classpath=.;%classpath%;%WL_HOME%libweblogic.jarset EX_WEBAPP_C
24、LASSES=%WL_HOME%config%DOMAIN_NAME%applicationsDefaultWebApp_myserverWEB-INFclasses2.2 开发一个简单的EJBAn Introduction to Database Systenm set CLIENT_CLASSES=%WL_HOME%config%DOMAIN_NAME%clientclassesset SERVER_CLASSES=%WL_HOME%config%DOMAIN_NAME%serverclasses 2.2 开发一个简单的EJBAn Introduction to Database Syst
25、enm set classpath=%classpath%;%CLIENT_CLASSES%;%SERVER_CLASSES%set Classpath=%classpath%;%JAVA_HOME%libtools.jar 2.2 开发一个简单的EJBAn Introduction to Database Systenm(3)文本编辑器 为编写EJB程序代码和部署代码,需要一个文本编辑器。可以使用Windows自带的“记事本(NotePad)”编辑器。但建议选择功能强一些的文本编辑器,会更加方便。如UltraEdit,EditPlus等。2.2 开发一个简单的EJBAn Introducti
26、on to Database Systenm 2.EJB开发 在开发这个HelloWorleEJB之前,首先在工作目录C:work中为这个实例创建一个子目录。C:workhello。EJB开发基本上都遵循一个过程,从总体上说,可以分成 五个步骤:.EJB程序代码编写.EJB程序代码编译2.2 开发一个简单的EJBAn Introduction to Database Systenm.EJB部署描述文件编写.打包.编译生成容器代码 每个步骤使用的工具不同,生成相应的阶段产品。(1)EJB代码编写HelloWorld EJB程序代码包括的接口和类名如下:2.2 开发一个简单的EJBAn Intro
27、duction to Database SystenmHelloHome主接口 HelloHome.java文件名 功能:定义创建方法 路径:c:workhello Hello远程接口 Hello.java文件名 功能:定义业务逻辑方法 路径:c:workhello2.2 开发一个简单的EJBAn Introduction to Database Systenm HelloBeanBean 类 HelloBean.java文件名 功能:实现业务逻辑 路径:c:workhelloHelloClient 客户端类 HelloClient.java文件名 功能:测试程序 路径:c:workhello
28、 2.2 开发一个简单的EJBAn Introduction to Database Systenm 具体程序代码如下:(2)EJB代码编写(3)EJB代码编译(4)EJB部署文件编写(5)打包(6)编译生成窗口代码2.2 开发一个简单的EJBAn Introduction to Database Systenm 3.命令脚本文件 上面在EJB的开发过程中使用命令行的方式,我们可以把有所有这些命令行集中起来做成一个命令脚本文件build.cmd,使用它可以一次性执行这些命令,而不必一个命令一个命令的执行。该文件存放在 C:workhello目录下,其内容为:2.2 开发一个简单的EJBAn I
29、ntroduction to Database Systenm md buildjavac-d build Hello.java HelloHome.java HelloBean.javamd buildMeta-infcopy*.xml buildMeta-infmd buildimagescopy*.gif buildimagescd buildjar cv0f std_myfirstejb_hello.jar2.2 开发一个简单的EJBAn Introduction to Database Systenm META-INF*.class imagescd.java weblogic.ej
30、bc-compiler javac buildstd_myfirstejb_hello.jar buildmyfirstejb_hello.jar 这样,在程序代码编辑好的情况下,只运行这个命令脚本程序,就可以完成EJB开发。2.2 开发一个简单的EJBAn Introduction to Database Systenm(4)EJB部署 EJB的部署有很多种方法,最简单的一种就是把C:workhellobuild目录下的myfirstejb_hello.jar文件拷贝到服务器的applications目录下,即C:beawlserver6.0configmydomainapplication
31、s目录下。如果服务器已经启动,则在拷贝的时候不需要重新启动服务器。服务器会自动检测到新拷贝的EJB。2.2 开发一个简单的EJBAn Introduction to Database Systenm(5)EJB运行测试 编写一个简单的客户端程序HelloClient来测试已部署的ejb。(6)常见故障及解决方法(1)在命令行窗口中运行javac命令出现:java不是内部或外部命令,也不是可运行的程序或批处理文件。原因:javac.exe命令文件所有的路径没有包含在环境变量Path中。2.2 开发一个简单的EJBAn Introduction to Database Systenm(2)执行ja
32、vac-d build Hello.java HelloHome.java HelloBean.java 命令时出现编译错误,其中有一条错误是:cannot resolve symbolsymbol:class EJBHomelocation:package ejbimpor javax.ebj.EJBHome;2.2 开发一个简单的EJBAn Introduction to Database Systenm 原因:javac.exe命令文件甩在的路径没有被包含在环境变量Path中。解决方法:运行环境变量脚本命令setEnv.cmd。(3)运行客户端测试程序时,即运行:java HelloCl
33、ient t3:/127.0.0.1:7001时,出现:2.2 开发一个简单的EJBAn Introduction to Database SystenmException in thread main java.lang.NoClassFoundError:HelloClient可能的原因是没有把“.”设置到环境变量classpath中。2.2 开发一个简单的EJBAn Introduction to Database Systenm(4)执行java weblogic.ejbc.命令时,抛出org.xml.sax.SAXParseException异常。原因:xml文件有语法错误解决办法:
34、进行.xml文件有效性检查。2.2 开发一个简单的EJBAn Introduction to Database Systenm 2.2 开发一个简单的EJBAn Introduction to Database Systenm 2.2 开发一个简单的EJBAn Introduction to Database Systenm 2.2 开发一个简单的EJBAn Introduction to Database Systenm 2.2 开发一个简单的EJBAn Introduction to Database Systenm 2.2 开发一个简单的EJBAn Introduction to Database Systenm 本章结束An Introduction to Database Systenm