收藏 分享(赏)

J2EE指南.doc

上传人:苏醒文档集 文档编号:19368958 上传时间:2023-03-14 格式:DOC 页数:268 大小:3.35MB
下载 相关 举报
J2EE指南.doc_第1页
第1页 / 共268页
J2EE指南.doc_第2页
第2页 / 共268页
J2EE指南.doc_第3页
第3页 / 共268页
亲,该文档总共268页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、文档说明:此文当中涉及到关键字、对象、等专用术语采取英文表达的方式。排版约定:标题均使用加粗斜体字;章标题使用二号字,距行首一个Tab距离;小节标题分别使用三、四、小四号字,位于行首;内容使用五号字,距行首一个Tab距离。J2EE指南序:1993年8月,我加入了太阳公司被称之为第一人的小公司。我之所以知道这个公司是因为我的一些同事跳槽到了太阳公司。我加入太阳公司的主要原因是因为我喜欢他卡通似的用户界面。太阳公司正在发展,其界面有一个昵称Duke。“第一人”的首次样品演示名曰:七星(Star 7),它是一个能让房主通过触摸屏来实现远程控制的产品。在我到哪儿的时候,他们正在为视频点播做演示。这个妙

2、极的视频点播演示是由加利福尼亚的一个称之为巨大图片工作室做的。演示产品使用当时称之为Oak的编程语言做的。我的第一个任务就是帮助Oak语言的创造者James Gosling 写语言规范。然而我真正想做的是对象为普通程序员的面向任务的文档。到了1994年7月,“第一人”陷入混乱,失去了向一些有线网络公司说明视频点播方案是消费者需求的说服力。面向Internet的编程1994年秋天我返回工作时,这个公司的景象已经完全改变。他们决定Oak语言跨平台的、安全的、易传输的代码时理想的面向Internet的语言。同时他们在制作名为WebRunner的浏览器,它具有在Internet上传输Oak代码他们称之

3、为Applet的能力。我开始写一些指南来帮助程序员使用applets。1995年,当WebRunner浏览器首次出版时,指南只是包含浏览器的一小部分,这个指南就是J2EE Tutorial的前身。该指南时第一次包含applets的文档,看起来有点像The Java Tutorial。事实上,The Java Tutorial也许仍有些能在最初出版的指南中找到。由于没有HTML工具,因此不得不手工完成。告诉你,为文档做手工代码连接是无趣的,哪怕是一份小文档。这个编程语言的名称由Oak变为Java,浏览器的名称由WebRunner换为HotJavaMary的加盟1995年早些时候,我们招收了一个合

4、同编制员Mary Campione。她和我在后来的工作互助中相识。Mary的工作是帮助程序员使用平台特色如线程。我们很快意识到我们的工作如此相似,我们很快就在一起为Java平台程序员指南工作。1995年5月18日,Mary Campione和我出版了第一版指南,我们称之为The Java Programmers Guide。它是一个不完全的草本,但它提供了为程序员在Java平台胜编程的一些信息。紧接着第二个星期,太阳公司正式在一个展示会上宣布了称之为SunWorld的Java平台。最棒的是NetScape同意在他们的浏览器上支持applets。在接下来的几个月里,Mary和我继续增加、校订编程

5、指南,我们密切的一起工作。到了1995年底,第一批Java系列的书籍完成。这一系列书籍主要由原“第一人”的成员编写,Addison-Wesley出版。The J2EE Tutorial现在又出现了一个新的平台,新的指南。Java2企业版的成功是显著的。开发者们都强烈要求提供有关使用Java平台编写服务端应用程序的资料。同原来的指南一样,这是一个多实例、易使用的并作为J2EE平台开发的参考。目 录准备工作6第1章 总 括7一分布式得多层应用程序7二J2EE容器9三打包J2EE组件10四开发者角色11五本书所用的软件12第2章 动手做一个EJB15一准备工作16二创建J2EE应用程序17三创建企业

6、Bean17四创建J2EE应用程序客户端20五创建Web客户端23六设置企业Bean的JNDI名25七部署J2EE应用程序26八运行J2EE应用程序客户端27九运行Web客户端27十修改J2EE应用程序28十一。常见问题和解决方法29第3章 企业Bean331,企业Bean概述342,会话Bean343,EntityBean364,Message-Driven Bean385定义客户端访问接口406,企业Bean的“内容”437,企业Bean的命名约定448,企业Bean的生存周期44第4章 有状态会话Bean示例491购物车会话Bean CartEJB49二 其他的企业Bean特性56第5章

7、 BMP的例子60一SavingsAccountEJB60二用deploytool部署BMP实现的实体Bean72三为BMP映射表间关系72四BMP的主键83五异常处理86第6章 CMP的例子87一 RosterApp应用概述88二 layerEJB代码分析88三RosterApp配置说明93四 RosterApp中的方法调用100五 运行RosterApp应用程序107六 用deploytool工具部署CMP实现的实体Bean108七 CMP的主键108第7章 一个消息驱动Bean的例子111一例子应用程序介绍111二J2EE应用程序客户端112三消息驱动Bean类113四运行本例子114五

8、用deploytool部署消息驱动Bean115六用deploytool配置JMS客户端116第8章 EJB查询语言118一术语118二简单语法119三查询例子119四全部语法122五EJB QL的限制135第9章 网络客户端及组件137第11章 JSP技术163第12章 JSP页面中的JavaBean组件176第13章 在JSP页面中自定义标签180第14章 事务200一什么是事务200二容器管理事务201三Bean管理事务206四企业Bean事务摘要209五事务超时209六隔离级别210七更新多个数据库210八Web 组件事务212第15章 安全213一纵览213二安全角色214三Web层

9、安全215四EJB层安全217五应用程序客户端层安全218六EIS(Enterprise Information System)层安全219七传递安全身份221八J2EE用户、域和组222九安装服务器证书223第16章 资源连接225一JNDI名和资源引用225二数据库连接228三邮件服务连接230四URL资源连接232第17章 DUKE的银行应用程序234第一部分 介绍准备工作J2EE指南对于广大的Java程序员来说是一份不可或缺的资料了。这篇导论对于初次碰到J2EE的程序员来说有着同样的作用。它与Java指南一样都是一例子为中心。谁应该使用这指南这篇指南是为爱好开发和部署J2EE应用程序的

10、程序员准备的。它包括了组成J2EE平台的技术以及描述如何开发J2EE组件并部署在J2EE软件开发包上。这篇指南不是为J2EE服务器及工具供应商准备的,它没有解释如何实现J2EE结构,也没有解释J2EE软件包。J2EE规范描述了J2EE结构并可以从下面的网址下载:关于例子这篇指南包含很多完整的,可运行的例子。你可以看看例子列表(P445)。理解例子的准备工作为了理解这些例子,你需要熟练Java语言,SQL,及关系型数据库的概念,这些非常重要的主题在Java指南中,下面的表格已列了出来。主题Java指南JDBCThreadsJavaBeansSecurity例子下载如果你一再线看了这些文档,并且你

11、向变异并运行这些例子,可以从下面的网址下载:如果你安装了这些捆绑的例子,例子的源代码在目录j2eetutorial/examples/src下,子目录ejb下是EJB的例子。这些捆绑的例子也包括j2ee EAR,位于目录j2eetutorial/examples/ears下。如何编译并运行例子 这篇指南文档是J2EE SDK 1.3版,要编译、运行例子你需要J2EE SDK 1.3及Java2标准版,你可以从下面的网址下载J2EE:下载J2SE1.3.1的网址:这些例子附有一个配置文件ant1.3,一个方便的运行工具。这个工具是由Apache 软件公司Jakarta项目组开发的。可以从下面的网

12、址下载:要编译例子,可按照下面的步骤来: 下载并安装J2SE SDK1.3.1、J2EE SDK1.3及ant. J2SE SDK1.3.1、J2EE SDK1.3及ant的安装说明如何配置环境变量。对照下表和对环境变量的配置情况。环境变量值JAVA_HOMEJ2SE SDK的安装路径J2EE_HOMEJ2EE SDK的安装路径ANT_HOMEANT的安装路径PATH应该包括J2EE SDK,J2SE SDK&ANT的安装路径 转到目录j2eetutorial/example. 运行ant target.相关信息这篇指南提供了如何使用主要的组件技术在J2EE平台上运用的简明概括,要了解更多的信

13、息可参考下面的网址:第1章 总 括今天,越来越多的开发人员都想编写分布式的,事务型的企业及应用程序,以及平衡速度、安全及服务器方可靠度的技术。如果你已经在这个领域工作,你应该知道在当今的快速变换及需求的电子商务及信息技术的世界里,企业应用程序需要设计、编译、产生低价位的、高速的、占用少量资源的程序。为了缩减开发成本,快速跟踪企业应用的设计和开发,J2EE技术提供了基于组件的设计方法,开发、集成、部署应用程序。J2EE平台提供了多层分布式应用模式,使具有重用的能力,并集成了基于XML的数据交换一个统一的安全模式及灵活的事务控制。一分布式得多层应用程序J2EE平台使用多层分布式的应用模式。应用逻辑

14、根据其功能分成多个组件,各种不同的应用组件构成分布在不同的依赖于层的机器上的J2EE程序。下面列出了位于不同层的组件.运行在客户机上的客户层组件.运行在J2EE服务器上的网络层.运行在J2EE服务器上的逻辑层.运行在EIS服务器上的企业信息层尽管J2EE应用程序可以由三层或四层构成,J2EE应用程序通常由三层构成,因为他们分布于三个不同的位置:客户及,服务器,后台数据库服务器。通过这种方式运行的三层应用模式拓展了基于客户服务的两层模式。J2EE组件J2EE应用程序由组件构成。一个J2EE组件是自包含的,与其相关的语气它组件通信的类及文件集成到J2EE应用程序的功能软件单元。J2EE规范定义了下

15、面一些组件:。运行在客户端的应用客户程序及小程序。运行于服务器网络的Servlet&Jsp组件。运行于服务端的企业逻辑组件EJB。J2EE组件用Java语言编写,通过相同的方法编译。J2EE组件与标准Java类的不同之处在于J2EE组件集成到了应用程序中,证明能很好的组成,与J2EE规范兼容,并部署到负责运行、管理的J2EE服务器上。J2EE客户端J2EE客户端可以使网络浏览器也可以是桌面应用程序。网络浏览器网络客户程序由两部分组成:动态网页包含各种标记语言(HTML,XML等),它由运行于网络层的网络组件产生,浏览器从服务器接受信息并反馈到页面上。网络客户端又称为瘦客户。瘦客户端通常不运行像

16、查询数据库,执行复杂的业务规则,或连到合法的应用程序。当你使用瘦客户时,重量级的操作都载入到运行于J2EE服务器上的企业Bean,它能够均衡安全,速度,服务及可靠性。小程序网页可以包含小程序。小程序是一个较小的用java语言编写的程序,并能通过安装在浏览器上的虚拟机运行网络组件首选API,它可以创建网络客户层,因为在客户系统中它不需要插件或安全策略文件,宁外,网络组件能提供更干净的,模块化的应用设计,因为它将程序设计与页面设计相分离。这样,页面设计人员可以进行页面设计而不需要懂Java程序设计。应用客户端J2EE应用客户端运行在客户上,它为用户处理任务提供了比标记语言丰富的接口。典型的是它拥有

17、通过Swing&AWTAPI建立的图形用户界面,基于命令行的接口也是可以的。应用客户端可以直接调用业务逻辑层的企业bean。JavaBean组件结构服务端及客户端也可以包含基于JavaBean组件来管理客户端与运行于服务端的组件间的数据流或服务端组件与数据库间的数据流。J2EE规范没有认为JavaBean为j2EE组件。JavaBean组件有实例变量和get,set方法来设置、获取变量值。网络组件J2EE网络组件可以是servlet或jsp。Servlet是java类,它能动态处理请求及响应。Jsp页面是基于文档的,能像servlet一样执行的能允许更多的静态页面内容。静态HTML页面及app

18、lets域网络组件绑在一起,但J2EE规范没有认为这些为网络组件。网络层可以包含JavaBean组件来管理用户输入、发送输入道逻辑层的EJB以处理。业务逻辑组件业务逻辑代码是解决、达到特定业务领域的需求,如银行、零售、金融,又EJB处理的业务逻辑层。企业Bean可以重新从存储器找回数据,如果必要并处理它,然后发送到客户程序。总共有三种EJB:会话bean,实体bean,消息驱动bean。会话bean代表短暂的与客户的会话,当客户结束执行时,会话bean及它的数据就消失了。与会话bean相比,实体bean代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的服务方法会将数据存储。二J2EE容

19、器瘦客户端的多层应用程序总是很难开发,因为它包括各个层的事务处理、状态管理、多线程、资源池和其他复杂底层细节等等的错综复杂的编码。但是基于组件和平台独立的J2EE平台使J2EE应用程序容易开发,因为商业逻辑被封装在可重用的组件(EJB)中。另外J2EE服务器以容器的形式为所有组件提供底层服务,因此你不必再为这些底层服务二伤脑筋,而可以专注于解决商业问题。容器服务容器(Container)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运行Web组件、企业Bean或者J2EE应用程序客户端之前,你必须将它们装配到一个J2EE应用程序中,并部署它们到容器中。装配的过程包括为J2EE应用

20、程序的每个组件 和J2EE应用程序本身设置容器的配置信息。这些配置信息定制J2EE服务器支持的底层服务,包括安全,事务管理,Java命名和目录接口(JNDI)查找和远程连接等。下面使这些服务的精简描述:l J2EE安全模型让你配置Web组件或者企业Bean以使系统资源只被授权用户访问l J2EE事务模型让你指定属于同一个事务的多个方法以使这些方法作为一个原子操作被执行l JNDI查找服务为企业应用中的多种命名和目录服务提供统一接口使应用程序组件可以统一访问这些命名和目录服务。l J2EE远程连接模型管理客户端和企业Bean之间的底层通信。企业Bean被创建后,客户端调用它的方法就像在本地虚拟机

21、中的调用一样。事实上,J2EE体系结构提供可配置服务意味着同一个J2EE应用程序中的组件可以根据不同的部署环境而有不同的行为。例如,一个企业Bean的安全配置可以使它在一种产品环境中有一个级别的数据库数据访问权限,而在另一种产品环境中有不同的数据库数据访问权限。容器也管理着很多不可配置的服务,如企业Bean和Servlet的生命周期,数据库连接池,数据持久化机制和J2EE平台API的访问权等等。尽管数据持久化机制是不可配置服务,但是J2EE体系结构允许你忽略容器管理的持久性(Container-Managed Persistence,CMP)机制在企业Bean实现中加入合适的代码,当然除非你确

22、实需要比容器管理持久性机制提供的更多的应用程序控制权,否则使用容器管理的持久性。例如你可以用Bean管理的持久性(Bean-Managed Persistence,BMP)机制来实现自己的查找方法或者创建一个定制的数据库缓冲池。容器类型部署过程将J2EE应用程序安装到J2EE容器中。图1-5展示了组件在容器中的情况:图 1-5 J2EE 服务器和容器(Container) J2EE server(J2EE服务器)J2EE产品的运行时服务部分。一个J2EE服务器提供EJB容器(EJB Container)和Web容器(Web Container)。 EJB容器管理J2EE应用程序中企业Bean的

23、运行。企业Bean和它们的容器在J2EE服务其中运行。Web容器管理J2EE应用程序中JSP页面和Servlet组件的运行。Web组件和容器也在J2EE服务其中运行。 Application client container(应用程序客户端容器)管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。 Applet container(Applet容器)管理Applet的运行。由在客户端运行的浏览器和Java插件组成。三打包J2EE组件J2EE组件都分开打包然后组装成一个J2EE应用程序来部署。每一个组件用到的文件如GIF、HTML文件或者服务器端的实用类文件等,再加上一个部署描述

24、符文件都被装配到一个模块然后加入到J2EE应用程序中。一个J2EE应用程序由一个或多个企业Bean组件模块、Web组件模块和应用程序客户端组件模块组成。最终企业解决方案会根据设计需要由一个或者多个J2EE应用程序组成。J2EE应用程序和它的每一个组成模块都有自己的部署描述符文件。部署描述符文件是描述组件部署配置信息的XML文件。例如,一个企业Bean的部署描述符文件声明了企业Bean的事物属性和安全授权。由于这种简单的声明形式,可以在不修改Bean的源代码的情况下修改这些信息。运行时,J2EE服务器读取部署描述符并根据读取信息在组件上执行相应动作。J2EE应用程序和它的所有模块都被打包到一个E

25、AR(Enterprise Archive)文件中。EAR文件是后缀为.ear的标准JAR(Java Archive)文件。(在J2EE SDK提供的GUI版的应用程序部署工具中,需要先创建一个EAR文件然后将JAR和WAR(Web Archive)文件加到EAR中。而命令版本的部署工具正好相反。)下面是这些打包文件的描述:l EJB JAR文件包含一个部署描述符文件,企业Bean文件和用到的其他文件l 应用程序客户端JAR文件包含一个部署描述符文件,客户端类文件和其他用到的文件l WAR文件包含一个部署描述符文件,Web组件(JSP和Servlet)文件和用到的其他文件使用模块和EAR文件的

26、打包方式,使用相同的组件装配成不同的应用程序成为可能,而且不需要额外的编码,只需要将用到的J2EE模块的任意组合装配成一个J2EE EAR文件。四开发者角色可重用的的模块使将应用程序的开发和部署分配给不同的角色成为可能,因此不同的个人或者团队可以更好的分工合作。在整个过程中,最先的两个角色提供J2EE产品和工具,搭建开发平台。平台OK之后,由应用程序组件提供者开发J2EE组件,然后应用程序装配者为特定应用装配需要的组件,最后由应用程序部署者来部署应用程序。在大的组织中,这些角色都由不同的个人或者团队来执行。这样的分工使得上一个角色的产品成为下一个角色的原料,更重要的是每个环节的产品都很轻便(p

27、ortable)以方便下一环节的工作。例如在应用程序开发阶段,企业Bean开发者提供EJB JAR文件,而作为应用程序装配者的其他开发者将这些EJB JAR文件组装成J2EE应用程序并保存在EAR文件中,作为应用程序部署者的消费者站点的系统管理员用EAR文件将J2EE应用程序安装到J2EE服务器中。当然不同的角色并不总是由不同的人来执行。例如你在一个小公司开发一个原型系统,你可能同时充当多种角色。J2EE产品提供商J2EE产品提供商设计并实现J2EE规范定义的J2EE平台、API和其他特性。典型的J2EE产品提供商如操作系统、数据库系统、应用服务器、Web服务器厂商,它们根据Java2平台企业

28、版规范实现J2EE平台。工具提供商工具提供商是那些提供开发、装配和打包工具的组织或个人。组件开发者、装配者和部署者使用这些工具来工作。应用程序组件开发者应用程序组件开发者是开发J2EE应用程序可使用的企业Bean、Web组件、Applet和应用程序客户端组件的组织或个人。企业Bean开发者企业Bean开发者提供企业Bean的EJB JAR文件,他的工作步骤如下:l 编写并编译源文件l 配置部署描述符文件l 将编译后的类文件和部署描述符文件打包为一个EJB JAR文件Web组件开发者Web组件开发者的工作任务是提供WAR文件:l 编写并编译servlet源文件l 编写JSP和HTML文件l 配置

29、部署描述符文件l 将.class、.jsp、.html和部署描述符文件打包为一个WAR文件J2EE应用程序客户端开发者应用程序客户端开发者也提供一个JAR文件:l 编写并编译源文件l 配置部署描述符文件l 将.class类文件和部署描述符文件打包进一个JAR文件应用程序组装者应用程序组装者将从组件开发者获得的组件文件装配成一个J2EE应用程序EAR文件。组装者可以编辑部署描述符文件。组装者的任务:l 组装EJB JAR和WAR文件到一个J2EE应用程序EAR文件l 配置J2EE应用程序的部署描述符文件l 确认EAR文件的内容符合J2EE规范应用程序部署者和系统管理员应用程序部署者和系统管理员配

30、置和部署J2EE应用程序,在程序运行时管理计算机和网络结构,并且监控运行时环境。包括设置事务控制、安全属性和指定数据库连接。部署者和系统管理员的任务如下:l 将J2EE应用程序EAR文件添加到J2EE服务器l 修改J2EE应用程序的部署描述符为特定运行环境配置应用程序l 部署J2EE应用程序到J2EE服务器五本书所用的软件本书使用J2EE SDK,它是Sun公司教学用J2EE平台,包括J2EE应用服务器,Web服务器,关系数据库,J2EE API和一整套开发部署工具。从以下网址可以下载:数据库访问J2EE SDK并不支持所有的数据库,而且版本不同支持的数据库也不同。J2EE APIJ2EE1.

31、3 API包括EJB2.0、JDBC API2.0、Servlet2.3、JSP1.2、JMS1.0、JNDI1.2、JTA1.0、JavaMail API1.2、JAF1.0、JAXP1.1、JCA1.0和JAAS1.0。简化系统集成J2EE平台的平台独立特性和完整的系统集成解决方案建立了一个开放的市场是用户可以使用任何厂商的产品。这样厂商就必须提共更有利于客户的产品和服务以争取用户。J2EE API通过提供以下功能简化应用程序集成:l 企业Bean的统一应用程序访问接口l JSP和Servlet的单一请求和应答机制l JAAS的可靠安全模型l JAXP提供基于XML的数据交换集成l JCA

32、提供的简单互操作能力l JDBC API提供的简单数据库连接能力l 消息驱动Bean、JMS、JTA和JNDI技术提供企业应用集成以下网址由关于集成的J2EE平台应用程序集成的详细信息:工具J2EE SDK提供应用程序部署工具和一组组装、检验和部署J2EE应用程序和管理开发环境的脚本。应用程序部署工具该工具提供组装、检验和部署J2EE应用程序的功能。它还提供以下向导:l 打包、配置和部署J2EE应用程序向导l 打包和配置企业Bean向导l 打包和配置Web组件向导l 打包和配置应用程序客户端向导l 打包和配置资源适配器向导同时这些配置信息也可以在组件和模块的相应选项页里设置。脚本表1-1列出了

33、J2EE SDK提供的脚本:表1-1 J2EE SDK 脚本脚本命令功能描述j2ee启动(-verbose或者不要参数)和停止(-stop)J2EE服务器cloudscape启动和停止Cloudscape数据库j2eeadmin添加JDBC驱动、JMS目标和各种资源工厂keytool创建公钥和私钥并生成X509的自签名证书realmtool到如证书文件,向J2EE应用程序的授权列表添加或者删除用户packager打包J2EE应用程序组件到EAR、EJB JAR、应用程序客户端JAR、WAR文件verifier检验EAR、EJB JAR、应用程序客户端JAR和WAR文件是否符合J2EE规范run

34、client运行J2EE应用程序客户端cleanup删除J2EE服务其中部署的所有应用程序第2章 动手做一个EJBDale Green著Iceshape Zeng译本章一个简单的客户端/服务器应用程序为例子描述了J2EE应用的开发、部署和运行的整个过程。这个例子由三部分组成:一个货币对换企业Bean,一个J2EE应用程序客户端和一个JSP页面组成的Web客户端。本章内容:准备工作获得例子代码获得编译工具启动J2EE服务器启动deploytool部署工具创建J2EE应用程序创建企业Bean编写企业Bean代码编译源文件打包企业Bean创建J2EE应用程序客户端编写应用程序客户端代码打包客户端指定

35、应用程序客户端的企业Bean引用创建Web客户端编写Web客户端代码编译打包Web客户端指定Web客户端的企业Bean引用设置企业Bean的JNDI名部署J2EE应用程序运行J2EE应用程序客户端运行Web客户端修改J2EE应用程序修改类文件添加文件更改部署设置常见问题和解决方法无法启动J2EE服务器编译出错部署出错J2EE应用程序客户端运行时错误Web客户端运行时错误用检验工具检查问题比较你的EAR文件和样本EAR文件其它异常一准备工作在你部署例子应用程序之前请先阅读本节。本节介绍我们使用的工具和如何使用它们。获得例子代码本章例子的源文件在j2eetutorial/examples/src/

36、ejb/converter目录下,是你解压缩本指南的目标目录的相对路径。获得编译工具要编译例子程序的源文件,你需要安装J2EE SDK和ant(它是一个轻便的编译工具)。详细信息请参考前言的编译和运行例子一节。检查环境变量J2EE和ant的安装说明解释了怎么设置需要的环境变量。确定这些环境变量的设置成了下表中描述的值:表2-1 环境变量设置环境变量值JAVA_HOMEJ2SE SDK的安装目录J2EE_HOMEJ2EE SDK的安装目录ANT_HOMEANT的安装目录(或解压缩目录)PATH包括上面三个工具的安装目录的bin子目录启动J2EE服务器在终端窗口中执行如下命令启动J2EE服务器:j

37、2ee -verbose虽然verbose不是必需的,但是它对调试很有用。停止服务器用如下命令:j2ee -stop启动deploytool部署工具deploytool部署工具有两种运行模式:命令模式和GUI图形用户接口模式。本章介绍的是指GUI模式。在终端窗口中执行下面的命令启动deploytool的GUI模式:deploytool要查看部署工具的上下文帮助,按F1键。二创建J2EE应用程序在建立例子应用程序的三个组成部分前,你需要创建一个J2EE应用程序,命名为ConverterApp,指定保存应用程序的EAR文件名为ConverterApp.ear。1. 在deploytool部署工具中

38、,选择菜单FileNewAppliction新建应用程序2. 再出现的对话框中点击Browse3. 在选择文件对话框中定位到路径:j2eetutorial/examples/src/ejb/converter4. 在File Name域中输入ConverterApp.ear5. 点击New Application按钮6. 点击OK三创建企业Bean企业Bean是包含应用程序商业逻辑的服务器端组件。运行时,客户端调用企业Bean的方法来处理商业逻辑。本例的企业Bean是一个叫做ConverterEJB的无状态会话Bean,(企业Bean的分类将在下一章讨论。)它的源文件放在j2eetutoria

39、l/examples/src/ejb/converter目录下。编写企业Bean代码本例的企业Bean需要以下三类代码:l Remote接口l Home接口l 企业Bean类编写Remote接口Remote接口定义客户端可以访问的商业方法。这些商业方法都在企业Bean类里实现。本例的Remote接口Coverter的代码:import javax.ejb.EJBObject;import java.rmi.RemoteException;import java.math.*;public interface Converter extends EJBObject public BigDecim

40、al dollarToYen(BigDecimal dollars) throws RemoteException; public BigDecimal yenToEuro(BigDecimal yen) throws RemoteException;编写Home接口Home接口定义客户端可以调用来创建、查找和删除企业Bean的方法。本例的Home接口ConverterHome只有一个create方法,该方法返回企业Bean的远程接口类型。下面是ConverterHome接口的代码:import java.io.Serializable;import java.rmi.RemoteExcept

41、ion;import javax.ejb.CreateException;import javax.ejb.EJBHome;public interface ConverterHome extends EJBHome Converter create() throws RemoteException, CreateException;编写企业Bean类本例的企业Bean类是ConverterBean类。它实现了Remote接口Converter定义的两个商业方法:dollarToYen和yenToEuro。ConverterBean的代码如下:import java.rmi.RemoteExc

42、eption; import javax.ejb.SessionBean;import javax.ejb.SessionContext;import java.math.*;public class ConverterBean implements SessionBean BigDecimal yenRate = new BigDecimal(121.6000); BigDecimal euroRate = new BigDecimal(0.0077); public BigDecimal dollarToYen(BigDecimal dollars) BigDecimal result =

43、 dollars.multiply(yenRate); return result.setScale(2,BigDecimal.ROUND_UP); public BigDecimal yenToEuro(BigDecimal yen) BigDecimal result = yen.multiply(euroRate); return result.setScale(2,BigDecimal.ROUND_UP); public ConverterBean() public void ejbCreate() public void ejbRemove() public void ejbActi

44、vate() public void ejbPassivate() public void setSessionContext(SessionContext sc) 编译源文件现在你可以编译Remote接口(Converter.java)、Home接口(ConverterHome.java)和企业Bean类的源文件了。1. 在终端窗口中进入j2eetutorial/examples directory目录2. 执行命令:ant converter这个命令编译本例企业Bean和J2EE应用程序客户端的源文件,编译后的类文件放在j2eetutorial/examples/build/ejb/con

45、verter目录下(不是src目录)。关于编译的更多信息参考前言部分的编译和运行例子。注意:在前述ant编译源文件时,它将j2ee.jar文件加在每个编译任务的classpath中。j2ee.jar文件存放在J2EE SDK安装目录的lib子目录下。如果你使用其它工具来编译这些源文件,需要把j2ee.jar文件加入classpath。或者可以直接将该文件加入操作系统的classpath环境变量中。打包企业Bean我们使用deploytool部署工具的新建企业Bean向导来打包企业Bean。在这个过程中向导完成如下工作:1. 创建企业Bean的部署描述符文件2. 将部署描述符文件和企业Bean的类文件打包进同一个EJB JAR文件3. 把生成的EJB JAR文件加入应用程序的Conv

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 开发文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报