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