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