第一章 概述
现如今,软件开发者意思到软件的分布式架构、事务特性、便捷开发相对于速度、安全和稳定性更加重要。在信息技术的领域内,企业级开发的重点在于有效地利用有限的资源更好地进行软件的设计、开发和产品化。
使用Java EE平台将会使开发工作变得从未有过的简单和快速。Java EE的目标是为开发人员提供一个功能强大的API库,从而缩短开发时间、降低开发难度、提升软件的性能。
Java EE 5引入了一些简单开发的模式,XML部署描述符不再是必须的了,取而代之的是开发者可以直接在代码中输入标注符,Java EE服务器在部署和运行时决定如何处理这些标注符。
在Java EE平台中的依赖注入技术可以方便地标识出所依赖的其它模块,这项技术有效地隐藏了大量的创建和查询资源的代码。它可以使用在EJB容器、WEB容器和客户端程序中。依赖注入允许Java EE窗口自动地插入其它模块或资源引用。
Java持久化API是Java EE 5平台新增的功能,用于在对象/关系与关系型数据库之间进行映射,可以使用于在EJB、Web组件、客户端组件中,也可以使用在Java EE环境之外使用,如Java SE程序。
本指南使用示例的方式讲述了如何在Java EE 5环境中使用这些功能,无论你是一个新手或者是一个经验丰富的开发人员,都可以在这些示例中发现有价值的内容。
如果你是一个Java EE平台的初学者,本章节将会是一个很好的开端,在这里你将学习到Java EE的架构和API,逐步了解一些重要的知识和概念,掌握如何开发、组装和部署Java EE应用程序。
Java EE程序模型
Java EE的程序模型基于Java语言和虚拟机,具有便捷性、安全性和快速开发的特性。Java EE的设计目的是提供一个稳固的运行环境,支撑企业开发中的重要业务环节,如客户、员工、供应商、合作伙伴,以及其它所有与企业相关的关系。这样的业务系统天生就具有复杂、包含众多潜在需求、分布式应用的特点。
企业为了更好地控制这些为众多用户提供的应用服务,应该将业务逻辑集中于一个中间层,由企业的信息部门进行管理,被放置在一些专门的服务器硬件之上,为企业提供完整的服务。
分布式多层应用框架
Java EE的企业级开发基于分布式的多层架构。软件系统被划分为多个模块,安装在不同的机器上。如图:
图中的应用被分为以下几个部分:
l Client-Tier:客户端,运行在客户端电脑上;
l Web-Tier:Web层,运行于Java EE服务器;
l Business-Tier:业务逻辑层,运行于Java EE服务器;
l EIS-Tier:企业信息系统层,运行在企业信息服务器中。
尽管Java EE应用程序可以由三层、四层所组成,但通用我们称其为三层架构,因为它们被部署在三个不同的位置:客户端电脑、Java EE服务器、数据库服务器。三层架构扩展了客户端/服务端的两层架构,在客户端与后端存储之间加入了一个中间层。
安全性
当软件模块需要平台提供访问安全性功能的,可以在程序部署时启用服务端的安全验证。平台所提供的多种安全措施可以使开发人员从复杂的安全功能实现上解脱出来。
程序部署时,可以使用Java EE平台提供的声明式安全管理。无需改动程序的编码,通过平台可以实现多种安全性管理机制。平台也提供标签的登录机制,所有开发人员无需在程序自己实现这些功能。
一个Java EE应用可以由多个Java EE构件所组成,每一个构件都是一个自描述的独立功能单元,包含其自身所使用的类与资源文件,构件之间可以进行相互通信。Java EE规范定义了以下几种标准构件:
l 客户端运行的程序或applet小程序;
l 服务器上运行的使用Servlet、JSF、JSP技术的Web构件;
l 服务器上运行的服务器端JavaBean(EJB)构件,用于处理业务逻辑;
Java EE构件是使用Java语言所编写和编译,它不同与普通的Java类,构件是用于装配完整的Java EE应用系统,受Java EE规范的约束,提供给Java EE服务器所使用,并受其管理。
Java EE客户端
一个Java EE客户端可以是一个客户端程序,也可以是一个Web客户端。
Web客户端
一个Web客户端包含两块内容,一是产生页面内容(HTML、XML等)的Web构件,运行于服务器中。另一个是Web浏览器,用于显示页面内容。
一个Web客户端通常称为瘦客户端。瘦客户端一盘不直接连接数据库查询数据,也不执行复杂的业务算法,或者连接业务程序。当用户使用瘦客户端时,诸如此类的重要操作都放置在服务端的企业Bean中执行,这样可以保证业务的安全性、执行效率、可靠性。
Applet
一个从服务器上获得的Web页面可以包含嵌入其中的网页小程序——applet,applet是一种使用Java语言编写的小程序,运行于安装浏览器在上的Java虚拟机中。因而,客户端的系统需要允许安装Java插件,并允许applet能够执行。
Web组件是首选的创建Web客户端的方式,因为它无需客户端系统安装插件和提供适当的安全策略。此外,它还能够将Web页面的制作与Java程序开发分隔开来,使得负责Web页面的制作人员无需过多了解Java程序开发的技术。
客户端程序
程序客户端运行于客户电脑中,可以提供比标记语言更加丰富的用户界面。客户端程序可以基于Swing或AWT组件开发出图形化的用户界面。
客户端程序可以直接访问业务服务器中的企业Bean,如果需要,客户端程序可以使用HTTP协议与服务器上的Servlet取得连接。
JavaBeans的组件架构
服务端与客户端也可以包含用于处理数据流的Java Bean组件。Java Bean并不受Java EE规范的约束。
JavaBean包含了一些属性和用于存取属性的get/set方法,JavaBean在设计和实现上比较简单,但它必须符合Java Bean架构的约定。
Java EE 服务间的通信
如下图所示,不同的客户端构件可以直接与服务器中的中间层进行通信,也可以是通过JSP或Servlet与中间层连接。
应用系统是使用浏览器还是使用客户端结构,取决于你的功能是更接近于用户还是更接近于服务。放置在服务器上的功能更容易实现分布式、更便于部署和管理。而将功能放置在客户端可以使用户获得更好的用户体验。
Web构件
Java EE中的Web构件中使用的技术是Servlet或JSP或JSF技术。Servlet是用于处理请求和输出的Jaca类。JSP是是可以像Servlet一样执行的文本文档,但更接近于静态页面。JSF是基于JSP和Servlet技术的一个框架,提供用户界面的展现功能。
静态HTML页面与applet可以在部署时与Web构件捆绑使用,但它们不受Java EE规范的约束。服务端工具类也可以与Web构件一同使用。
如下图所示,Web层可以像客户端层一样包含JavaBean用于处理用户的输入,并将输入送入服务端的企业Bean中处理。
业务构件
业务处理代码用于处理专业领域内的业务需求,如银行、零售、财务等,它们被放置在服务端的业务层中执行。下示显示了一个企业Bean如何从客户端接入数据,处理之后再将结果传递给企业信息系统存储。一个企业Bean也负责从数据存储系统是获取数据,处理后发送回到客户端。
Java EE容器
通常,多层的瘦客户端应用系统比较难以开发,主要是原因是需要大量的编码去控制事务、状态管理、多线程、资源池和其它复杂的低层的细节。组件化和平台独立的Java EE架构使得开发难度变得容易,因为业务逻辑被设计为可重用的构件。此外,Java EE还提供了诸多底层的服务,可以用于容器中的所有构件。因此开发者无需自己开发这些服务,有更多的精力去解决业务逻辑上的问题。
容器服务
容器处于构件与平台之间,是平台的功能的接口。一个Web构件、EJB构件、客户端构件都必须安装到Java EE相应的容器中才能够运行。
安装构件的过程包括对构件进行配置以及对容器本身进行配置的操作。容器配置用于定制Java EE服务如何进行工作。包括诸如安全服务、事务管理、JNDI(命名与目录服务)、远端连接服务等。典型应用如下:
l 安全服务配置允许设定某些Web构件、EJB等系统资源只能够被通过验证的用户所访问;
l 事务管理配置允许将多个方法设定为一个单一的事务,所有该事务中的方法作为一个完整的处理单元;
l JNDI查找服务提供了一个统一的命名与目录服务接口,应用构件可以访问这些服务;
l 远端连接服务管理着底层的客户端与企业Bean之间的连接。当一个企业Bean被创建,客户端可以调用其方法,而无论它们是不是运行在同一个虚拟机中。
因为Java EE框架提供了可配置的服务,应用构件在同样的Java EE环境内可以被配置为不同功能的模块。如,一个企业Bean在某种环境中的数据访问可被配置为信任级,而在另一个环境中可以配置为其它级别。
容器中也包括了一些不可配置的服务,如企业Bean和Servlet的生命周期、数据连接池、数据持久化、和访问Java EE的API接口等。
容器类型
部署工作将应用构件安装在如下的容器中:
l Java EE 服务器:一个可运行的Java EE产品,包含了EJB容器和Web容器;
l EJB容器:管理应用构件中的EJB的运行,EJB及其容器运行于Java EE服务器中;
l Web容器:管理JSP页面和Servlet组件的运行,同样运行在Java EE服务器中;
l 客户端容器:管理可执行的客户端构件,运行于客户端电脑中;
l Applet容器:管理Applet的运行,包括客户端的浏览器和Java插件。
Web服务
Web服务基于XML和Web技术,是一种客户端与服务端之间交换数据的通信方式。Java EE平台提供了设计、开发、测试和部署Web服务的API和工具,可以访问Web服务的客户端可以是基于Java技术,也可以是其它平台下开发的程序。
在Java EE中的XML API支持下,开发Web服务我们需要做的仅仅是传递调用服务所需要的参数和处理它的返回值,文档处理中只需要关心文档内容的遍历,不再需要处理底层的编码,因为这些工作XML API已经帮我们做了。涉及到的XML标准和协议将被包含在以下章节。
XML
XML是一项跨平台、可扩展、基于文本的标准语言。当XML数据在不同的模块之间传递时,各模块自由地根据自己的需求处理这些标记。
例如,一个Web服务可以使用XML文档和模式文件列出产品的价格,当其它合作伙伴公司获得XML和模式数据之后,可以依照自己的样式生成需要的价格列表,如:
l 某个公司接收到XML数据后,通过程序将价格数据转换为HTML格式显示出来,并显示在其网络中;
l 另一个公司可以将XML价格列表通过工具创建一个市场情况文档;
l 还有的公司可以将价格数据输入到其应用软件中进行处理。
SOAP传输协议
使用基于HTTP的SOAP(Simple Object Access Protocol,简单对象访问协议)在客户端与Web服务之间可以实现跨平台的交互,无论是在本地还是通过internet访问远端的服务。HTTP常用的通过internet进行请求—响应技术标准,SOAP是使用XML技术通过HTTP进行传输的标准协议。
一个SOAP的消息包含如下部分:
l 使用XML定义消息中的内容和如何处理本消息;
l 包含消息中所使用的数据类型的编码规则;
l 定义如何表达对远端服务的请求和如何理解远端服务返回的结果。
WSDL 标准格式
WSDL(Web Service Description Language,Web服务描述语言)是用于描述网络服务的XML格式的标准。描述了服务的名称、地址以及如何使用。WSDL可以存放于UDDI中,也可以发布在Web网络中。Sun公司的Java System Application Server平台(8及以后版本)包含了用于产生WSDL工具。
UDDI与ebXML 标准格式
其它的基于XML的标准,包括UDDI(Universal Description, Discovery and ntergration,统一资源描述定位服务)与ebXML,使用它们可以在Internet上发布业务信息服务,并为想要使用该服务的客户端提供服务。
Java EE应用系统的装配与部署
一个Java EE程序将会包含一个或多个标准部署单元,可以被安装到任务Java EE的兼容平台上,每一个单元包含:
l 一个或多个构件(EJB、JSP、Servlet、applet等);
l 一个可选的部署描述符,描述单元中的内容。
一旦Java EE的部署单元产生后,通常可以使用平台所提供的部署工具进行设置,比如设置它的可访问用户列表、数据库名称等。当部署单元被部署到平台中之后,它使处于可运行状态。
打包程序
一个Java EE应用系统将会装配为一个JAR格式的EAR文件。同样的一些组件根据不同的装配方法,可以装配出许多种不同的应用,无需编码,这只是在装配是需要完成的工作。
一个EAR文件包含多个Java EE模块和部署描述符,一个部署描述符是一个XML格式的文档,其中包含了模块如何工作的设置信息。因为部署描述是公开的,所以无需改源代码就可以改变部署描述符中的内容,Java EE服务器会在运行时依照部署描述符中指定的设置控制构块各个构件的运行。
部署描述符有两种,Java EE部署描述符和运行时描述符。一个Java EE部署描述符根据Java EE的标准格式定义了部署的一些设置信息,可用于所有的Java EE兼容的服务器。而一个运行描述符而用于配置Java EE的运行设置,如Sun Java System Application Server平台9中的运行描述符包含了Web程序根目录、资源命名的映射、服务器运行细节参数、缓存控制等。运行描述符被命名为sun-xxxx.xml的名称格式,放置在与Java EE描述符同样的目录中。
一个Java EE模块由一个或多个相同类型的构件所组成,还包含了一个这种类型的部署描述符。例如,一个EJB模块的部署描述符定义了该模块的事务特性、安装特性等。一个不包含部署描述符的Java EE可以被部署成一个单机模块。以下列出四种Java EE的模块:
l EJB模块,包含一被定义为企业Bean的类,以及一个部署描述符。EJB模块被打包成为一个JAR文件;
l Web模块,包含servlet类、JSP文件、支持类文件、GIF和HTML文件,以及一个部署描述符。Web模块将被打包为一个WAR文件;
l 客户端程序模块,包含一些客户端类文件和一个客户端部署描述符。将被打包为一个JAR文件;
l 资源模块,包含一些接口、类、本地库、其它文件,与资源描述符一起,将被打包为一个RAR文件。
部署角色
模块的可重用技术使得程序的部署角色与开发角色相分离,可以由不同的人或不同的公司来完成。
首先,有两种角色分别负责Java EE产品的采购和安装。在安装之后由构件开发人员负责软件的开发,装配人员负责构件的装配,部署人员解决应用系统的部署问题。在一个大型组织中,这些工作可能由不同的个人或者团队来完成,这样的分工是因为每个前期的角色都会产生一个产物作为下阶段的输入。比如,EJB可以由负责开发人员的人开发出来,生盛开个EJB的JAR文件,交给装配人员进行装配,并得到一个EAR文件,再交给部署人员安装到Java EE服务器中。
这些工作不一定非要由不同人员来完成不可,如果你工作在一个小公司,或者完成一个简单的应用,那可能你要承担所有阶段的工作。
Java EE供应商
Java EE供应商的职责包括设计和开发Java EE平台API,以及实现其它Java EE标准中定义的功能。通常是Java EE兼容的服务器软件的销售商。
工具供应商
是指那些提供给开发、装配和部署人员所使用的工具的开发人员或公司。
应用系统供应商
是指创建Web构件、EJB构件、applet、和程序客户端的组织和个人。
企业Bean开发者
EJB开发者的产物是包含企业Bean的JAR文件,其工作包括:
l 编写和编译源代码;
l 编写部署描述符;
l 将class文件和部署描述打包为一个JAR文件。
Web构件开发者
Web开发者的任务是生成WAR文件,包含以下工作内容:
l 编写和编译Servlet源代码;
l 编写JSP、JSF、以及HTML页面;
l 编写部署描述符;
l 将所有的class类文件、JSP、HTML文件连同部署描述符一起打包为一个WAR文件。
客户端程序开发者
客户端开发人员的任务是生成包含客户端程序的JAR文件,其工作内容如下:
l 编写和编译源代码;
l 指定部署描述符;
l 打包类文件和部署描述符,生成一个JAR文件。
程序装配者
装配人员负责将来自构件提供者(开发人员)的模块文件,装配成为一个EAR文件。装配和部署人员可以直接修改部署描述符,或者使用工具对描述部署进行配置。装配人员的工作内容如下:
l 将上一阶段生成的EJB JAR文件与WAR文件组装成为EAR文件;
l 指定应用系统的描述描述符;
l 检验应用系统的容器正常工作,并符合Java EE标准。
系统部署与管理者
部署与管理角色由负责系统配置与管理的个人或组织担任,维护着应用系统及整个网络的运行。其工作职责包含设备事务特性、安全特性、指定数据库连接等。
根据系统开发人员提供的手册,部署人员对应用系统进行配置,包括其外部引用、安全设置、设置事务属性。在安装应用系统时,部署人员将应用系统安装到服务器中,并生成容器所需要的类和接口。
部署和管理人员的工作内容如下:
l 获到前一阶段生成的EAR文件并放置在服务器中;
l 修改应用系统的部署描述符以适应系统环境;
l 检验服务器中的EAR容器是否正常工作并符合Java EE标准;
l 在Java EE服务器中安装EAR文件。
Java EE 5 API
图显示了在Java EE平台中可以在不同容器中使用的API,以下章节将简要地描述这些API。
企业Bean技术
一个企业Bean(EJB)是一个包含了用于处理业务逻辑的域和方法。你可以把一个EJB想象成一个积木,在Java EE服务器中,它可以独立或与其它EJB一起实现所需要的业务逻辑。
Java EE中有两种EJB:会话Bean和消息驱动Bean。一个会话Bean代表与客户端的一次会话,当客户端完成会话时,会话Bean及其保存的数据将被清除。消息驱动Bean结束了会话Bean与消息监听的特性,允许业务构件异步接收消息。通常,消息来自于Java消息服务(JMS)。
在Java EE 5中,实体Bean已经被Java持久化API实体所驱代。一个实体表示数据表中的一行数据。当客户停止或者服务器关闭时,持久化管理器将保住实体数据被正确地保存。
Servlet技术
Servlet是一个自定义的HTTP Servlet类,具有处理服务端请求/响应的功能。虽然Servlet可以处理多种方式的请求,但通过使用Servlet与Web服务器一同处理经由HTTP协议的请求。
JSP技术
JavaServer Pages(JSP)技术可以将程序片断放置在基于文本的文档中。一个JSP页面可以包含两种内容,一种是HTML/WML/XML格式的静态内容,另一种是动态执行控制页面展现的程序片断。
JSP标签库技术
JSP标准标签库(JSTL)包含了大量的通用JSP标签,使用JSTL可以在统一的标签基础上开发出多种不同的JSP应用,这样的JSP页面需要部署在支持JSTL的Web容器中,Web容器将会对JSTL的运行进行优化。
JSF技术
JavaServer Face(JSF)是用于建立用户界面的一套框架,其中包含以下一些主要的内容:
l 一个GUI组件框架;
l 一个灵活的可用于多种不同标记语言(如HTML)的显示模型;
l 一个可用于产生HTML/4.01标记的RanderKit工具包。
其中包含了如下GUI组件:
l 输入验证;
l 事件处理;
l 在模型对象与组件之间的转换;
l 创建对象模型
l 页面导航的配置
以上特性都可以通过API与XML配置文件实现。
消息服务API
Java消息服务(JMS)API是一套允许应用程序创建、发送、接收和读取消息的标准。它实现了在分布应用中的松散连接、可靠传输、以及异步通信等特性。
事务API
Java事务处理API(JTA)是Java中处理事务的标准接口。Java EE架构提供了默认的自动提交的事务特性,意味着任务应用程序都可以立即看到其它程序所做的数据更新。假如在你的应用中使用了两个数据访问操作,并且在这两个操作在数据上具有依赖性,那么你可以使用JTA进行事务细节的控制,包括事务如何开始、回滚和提交。
邮件API
JavaMail API用于发送邮件通知,包含两个部分,其一是用于应用程序中的发送邮件的接口程序,另一个部分是服务提供程序使用的接口。包含服务提供程序的Java EE平台允许应用系统通过Internet发送邮件。
JavaBean激活框架
JavaBean激活框架(JAF)被包含在Java EE中是因为JavaMail将会使用到它。JAF提供的服务用于数据片断的确定类型、组装、查询可用操作、以及创建相应的JavaBean来处理数据片断。
XML处理API
XML处理API(JAXP)被包含在Java SE平台中,提供了处理XML文档的功能,包括XML文档对象模型(DOM,Document Object Model)、简单XML API(SAX,Simple API for XML)、扩展样式表语言转换(XSLT,Extensible Stylesheet Language Transformations)。JAXP为应用程序提供了XML文档的分析和处理的能力。
此外,JAXP也提供了命名空间的支持,用于解决在使用模式文件时遇到的命名冲突。
Web服务API
JAX-WS(Java API for XML Web Services)提供了XML数据与Java对象之间的映射功能。JAX-WS规范中定义了客户如何访问Web服务,以及如何执行Web服务中的功能。J2EE规范中描述了如何部署基于JAX-WS的程序如何部署,EJB与Servlet规范也定义了相关的内容。
JAX-WS规范中还定义了消息处理器的实现方式,消息处理器用于处理消息的请求和响应。通常,消息处理器与JAX-WS客户端或者服务端结点处于相同的容器中,具有相同的权限和执行上下文。如果可以,自定义序列化和反序列化也可以使用同消息处理器相同的方式处理。
XML绑定架构
JAXB(Java Architecture for XML Binding)提供了方便的方法来绑定XML与JAVA语言中的表示。JAXB可以独立使用,也可以与JAX-WS一同使用,所有的Java EE客户端容器、Web容器、EJB容器都支持JAXB。
支持附件的SOAP API
SAAJ(带附件的SOAP API,SOAP with Attachments API for Java)是底层的API,被JAX-WS与JAXR所依赖,大多数开发人员不需要直接使用SAAJ,而使用更加高级的JAX-WS。
XML注册API
JAXR(The Java API for XML Registries)提供了通过Web进行多程业务注册的功能。JAXR支持ebXML注册标准,符合UDDI规范。使用JAXR,开发人员可以使用统一的API实现多项重要的注册技术。
J2EE连接器框架
JDBC API
JDBC(Java Database Connectivity)API为Java语言提供了访问数据库的功能,可以在EJB中使用,也可以用于在JSP或Servlet中直接访问数据库。
Java持久化API
JPA(Java Persistence API)连接对象模型与数据库的桥梁。包含以下内容:
l 持久化API;
l 查询语言(QL);
l 对象/关系映射。
命名与目录服务
JNDI(The Java Naming and Directory Interface)提供了类似于LDAP、NDS、DNS、NIS的命名与目录的服务。使得应用程序之间可以共享一些已命名的对象。
Java验证与授权服务
JAAS(Java Authentication and Authorization Service)为应用程序提供了验证和授权的服务。
综述
Java EE平台是一个跨平台的、完整的应用解决方案,它的开发特性使得用户不再依赖于某一个技术供应商,促进了系统供应商之间的竞争,努力为用户提供更高的性能、更好的工具、更多的自定义空间。
Java EE API通过在以上方面为系统与应用开发提供了支持:
l 使用EJB定义了统一的应用模块;
l 使用JSP与Servlet技术实了简单的请求与响应机制;
l JAAS提供了可靠的安全特性;
l JAXP、SAAJ、JAX-WS提供了XML数据交换技术;
l J2EE框架提供了简单的协同工作模式;
l 通过JDBC非常容易实现数据库访问功能;
l 使用消息驱动Bean与JMS、JTA、JNDI实现企业级应用。
Sun Java System Application Server Platform Edition 9
Sun公司的Java EE服务平台第9版(以下简称AS)是一个完全符合Java EE规范的平台。除了符合所有的Java EE API标准以外,还提供了大量的工具帮助开发人员完成工作。
本节将简要介绍AS附带的工具,以及如何启动与停止AS服务、启动管理控制台、启动和停止Java DB数据服务。后面的章节将会介绍余下的工具。
工具
下表将列表AS中附带的工具。其中一些工具的基本用法将贯穿整个指南。如果需要查看详信息,请访问在线帮助文档。
工具 | 描述 |
管理控制台 | 一个基于Web的图形化管理工具,用于停止AS服务、管理用户、资源和应用系统。 |
Asadmin | 一个命令行管理工具,用于开启/停止AS服务、管理用户、资源和应用系统。 |
Asant | 是一个扩展了ant的命令行编译工具。 |
Appclient | 用于启动客户端容器并调用JAR文件中的客户端程序。 |
Capture-schema | 一个用于提取数据库模式信息的命令行工具,AS可以使用提取结果作为持久化的依据。 |
Package-appclient | 用于打包客户端容器与JAR文件命令行工具。 |
Java DB database | 一个Java DB 数据库 |
Verifier | 验证Java EE部署描述符的命令行工具 |
Xjc | 一个用于转换/绑定XML到JAVA类的命令行工具 |
Schemagen | 用于创建类文件中命令空间引用模式的命令行工具 |
Wsimport | 用于处理Web服务的WSDL信息的命令行工具 |
Wsgen | 用于生成WSDL的命令行工具 |
开启和停止AS服务
要开启服务,在命令行中输入如下命令:
asadmin start-domain --verbose domain1
一个域(domain)是一个或多个服务器实例,它们都被一个管理服务器所管理。联合一个域需要指定:
l AS的端口,默认是8080;
l 管理端口,默认是4848;
l 管理员用户名和密码。
以上是你在安装AS是需要指定的内容。本指定中的示例假定你使用默认的端口。
如果启动命名中不带有参数,将会启动默认域——domain1。“--verbose”参数的作用是将启动详细信息显示出来。
或者使用开始菜单中的“程序”à“Sun Microsystems”à “Application Server PE”à “Start Default Server”。
当服务已启动完成后,你将会看到如下信息:
Domain domain1 started.
如果需要停止服务,可以输入以下命令:
Asadmin stop-domain domain1
或者使用开始菜单中的“程序”à“Sun Microsystems”à “Application Server PE”à “Stop Default Server”。
当服务成功停止,你将会看到如下信息:
Domain domain1 stopped.
开启管理控制台
使用管理控制台可以管理AS中的用户、资源、应用系统。在运行管理控制台之前,必须启动AS服务。启动控制台的方法是在浏览器中输入以下地址:
http://localhost:4848/asadmin/
或使用开始菜中的“程序”à“Sun Microsystems”à “Application Server PE”à “Admin Console”。
开启与停止Java DB数据库服务器
AS中包含了一套Java DB数据库。
启动Java DB数据库的方法是输入以下命令:
Asadmin start-database
或使用开始菜中的“程序”à“Sun Microsystems”à “Application Server PE”à “Start Java DB”。
停止Java DB的方法是输入以下命令:
Asadmin stop-database
或使用开始菜中的“程序”à“Sun Microsystems”à “Application Server PE”à “Stop Java DB”。
可以通过以下网址获取Java DB的详细信息:
http://developers.sun.com/prodtech/javadb/
调试Java EE应用系统
本节描述了如何确定某个应用系统在部署或执行时发生了什么错误。
使用服务日志
获取错误信息的一个方法是查看服务日志,日志存放于<JAVAEE_HOME>/domains/domain1/logs/server.log文件中。日志中包含AS和应用系统的标准输出。你可以在任何Java类中使用system.out.println或日志API输出信息,也可以在Web构件中使用ServletContext.log方法输出信息。
如果在启动AS时使用了“--verbose”参数,所有的日志信息将会输出在控制台屏幕上。如果你在后台运行AS,那么所有的日志信息将只被记录在日志文件中。你可以在管理控制台中查看日志记录,步骤如下:
l 选择“Application Server”节点
l 选择“Logging”标签
l 点击“Open Log Viewer”按钮。事件查看器会显示最后40条件信息。
如果希望查看更多信息:
l 点击“Modify Search”按钮
l 指定要查询的条件
l 点击搜索按钮
使用调试器
AS支持JPDA(Java Platform Debugger Architecture,JAVA平台调试模式)。经过配置,JPDA可以使用socket进行调试连接。使用调试器的方法如下:
l 使用管理控制台打开AS的调试模式:
l 选择一个AS节点
l 选择JVM标签,默认调试选项是:
l -Xdebug -Xrunjdwp:transport=dt_socket,server=y, suspend=n,address=9009
l 默认的调试socket商品是9009,如果需要,你可以修改它
l 点击“Enabled”复选框
l 点击保存按钮
l 重启AS服务