好文档 - 专业文书写作范文服务资料分享网站

JBoss中文文档

天下 分享 时间: 加入收藏 我要投稿 点赞

专注于Java EE平台、敏捷方法及Open Source技术咨询

第2章 JBoss服务器--快速上手

2.1 服务器结构

至此,用户应该已完成了JBoss应用服务器的下载和首次运行。接下来,用户需要了解

安装后的JBoss目录结构及其相应的内容。粗略看后,用户会发现其存在很多目录,因此很明显,用户可能会无从下手,并且不知道应该忽略哪些内容,从而不影响用户对JBoss应用服务器的体验。为解决这个问题,本章将深入服务器目录结构、主要配置文件的位置信息、日志文件、部署问题,等等。对于用户而言,本章的内容很有意义,因为这将帮助用户理解JBoss服务架构。在阅读完本章内容后,用户将能够完成J2EE应用的部署。 2.1.1 主目录

将二进制发布版解压到jboss-4.0.4目录。该目录包含如下5个子目录:

?? bin:含有启动、停止以及其他系统相关脚本。在前面,本书已经讨论过启动JBoss

应用服务器的run脚本。

?? client:存储供Java客户应用或者外部Web容器使用的配置文件和JAR文件。用

户可以使用所需要的具体存档,或者仅仅使用jbossall-client.jar。

?? docs:含有JBoss引用的XML DTD文件(当然,还包括JBoss具体配置文件)。同

时,还存在JCA(Java Connetor Architecture,Java连接器架构)实例配置文件,供设置不同数据库的数据源使用(比如MySQL、Oracle、Postgres)。

?? lib:包含运行JBoss微内核所需的JAR文件。请注意,不要往该目录添加用户自

身的任何JAR文件。 ?? server:包含的各个子目录都是不同的服务器配置。通过往run脚本后添加-c

name>参数便能够指定不同的配置。接下来,来看看default服务器配置。

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

5 专注于Java EE平台、敏捷方法及Open Source技术咨询

图2-1 JBoss目录结构

2.1.2 服务器配置

从根本上考虑,JBoss架构是由JMX MBean服务器、微内核、一套可插入式组件服务

以及MBean构成的。这种架构使得,集成不同的配置变得更加简单,并且能够很灵活地满足用户的各自需求。用户不再需要一次性运行重量级的应用服务器。同时,用户可以删除不再需要使用的组件(这将从很大程度上减少服务器的启动时间),并且通过开发自己的MBean还能够集成其他服务到JBoss中。当然,如果是运行标准J2EE应用,则不用理会这些自定义工作。用户所需要的一切服务,JBoss发布版都包括了。另外,为使用JBoss,用户也不用掌握JMX的更详细技术细节,但是如果用户知道JBoss是将这种基于JMX的架构作为其核心的,则对于开发基于JBoss的J2EE而言,更有帮助。 开发者在server目录下能够找到若干服务器配置实例。如果JBos是通过安装界面完成安装的,则仅仅能看到default配置。在安装过程中,EJB3、EJB 3群集、完全J2EE 1.4等特性可供安装者选择,最终这些特性都将配置在default中。如果开发者下载了二进制或源代码(构建)版本,则server目录下存在3个服务器实例配置:all、default以及minimal,它们各自提供了不同的服务集合。很显然,如果启动JBoss服务器时没有指定其他配置,则将使用default配置,这也是本书在第1章使用的服务器配置。各个配置的具体内容如下:

?? minimal:这是启动JBoss服务器所要求的最低配置。minimal配置将启动日志服务、

JNDI服务器以及URL部署扫描器,以找到待部署的(新)应用。对于那些不需要使用任何其他J2EE技术,而只是使用自定义服务的场合而言,则这种JMX/JBoss

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

6 专注于Java EE平台、敏捷方法及Open Source技术咨询

配置最适合。它仅仅是服务器,而不包含Web容器、不提供EJB和JMS支持。

?? default:默认配置,它含有大部分J2EE应用所需的标准服务。但是,它不含有JAXR

服务、IIOP服务、或者其他任何群集服务。

?? all:提供了所有可用的服务。它包含RMI/IIOP和群集服务,default配置中没有提

供群集服务。

用户也可以添加自身的服务器配置。最佳做法是,拷贝最接近用户需求的现有配置,然后修改其具体内容。比如,如果用户不需要使用消息服务,则只需要拷贝default目录,并重新命名为myconfig,然后删除jms子目录。最后,启动myconfig配置。

run -c myconfig

包含运行JBoss的服务器配置是服务器根路径。它含有特定配置中所有的代码和配置信息。比如,日志输出将存储在那儿,应用也将部署在那儿。接下来,本章来看看default服务器配置目录的具体内容。如果用户还没有运行JBoss服务器,而请运行一下吧,因为初次运行后,JBoss将创建若干个子目录。

?? conf:含有指定JBoss核心服务的jboss-service.xml文件。同时,还包括核心服务

的其他配置文件。

?? data:这一目录存储持久化数据,即使服务器发生重启其中的数据也不会丢失。许

多JBoss服务将数据存储在这里,比如Hypersonic数据库实例。

?? deploy:用户将应用代码(JAR\\WAR\\EAR文件)部署在此处。同时,deploy目录

也用于热部署服务(即,那些能够从运行服务器动态添加或删除的服务)和部署JCA资源适配器。因此,用户能够在deploy目录看到大量的配置文件。尤其是,用户能够看到JMX控制台应用(未打包的WAR文件),本书前面讨论过。JBoss服务器将定期扫描该目录,从而查找是否有组件更新或修改,从而自动完成组件的重新部署。本书后续章节将详细阐述部署细节。

?? lib:服务器配置所需的JAR文件。用户可以添加自身的库文件,比如JDBC驱动,

等等。 ?? log:日志信息将存储到该目录。JBoss使用Jakarta Log4j包作为其日志功能。同时,

用户可以在应用中直接使用Log4j日志记录功能。

?? tmp:供部署器临时存储未打包应用使用,也可以作为其他用途。 ?? work:供Tomcat编译JSP使用。

其中,data、log、tmp、work目录是JBoss创建的。如果用户没有启动过JBoss服务器,则这些目录不会被创建。

本书既然提到了JBoss中的热部署服务主题,接下来在探讨服务器配置问题前先来看看实际例子。如果还没有启动JBoss,则请运行它。然后,请再次查看deploy目录(用户必须保证运行了default配置),然后删除mail-service.xml文件。通过运行JBoss服务器的控制台能够浏览到如下信息:

13:10:05,235 INFO [MailService] Mail service 'java:/Mail' removed from JNDI

然后,再次将mail-service.xml文件放回原处,用户将通过控制台再次发现JBoss重新部署了该服务。所以,这就是JBoss的热部署。

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

7 专注于Java EE平台、敏捷方法及Open Source技术咨询

2.2 基本安装问题

至此,本书已经阐述了JBoss服务器的结构。接下来,带领用户看看其中的主要配置文

件,并看看它们各自的用途。请注意,这里的目录路径都是基于default目录给出的。 2.2.1 核心服务

当JBoss服务器启动时,首先会启动conf/jboss-service.xml文件指定的核心服务。如果用户通过编辑器打开它,将会看到其包括了各种服务,其中包括日志、安全性、JNDI(还有本书前面讨论过的JNDIView服务)。将如下JNDIView服务入口注释掉:

如果重启JBoss,则JNDIView服务将不再出现在管理控制的列表中。实际场合中,用户很少会修改该文件。虽然通过conf/jboss-service.xml文件能够添加其他MBean服务,但是更好的办法是,将单独的配置文件放置在deploy目录中,因为这将使得用户的服务具有热部署能力。 2.2.2 日志服务

本书提到,Log4j是JBoss使用的日志功能包。如果用户还不熟悉Log4j包,并且希望在应用中使用它,则请到Jakarta网站,http://jakarta.apache.org/log4j/。通过conf/log4j.xml文件能够控制JBoss的日志功能。该文件定义了一套Appender、指定了日志文件、具体消息Category类型的存储、消息格式以及消息的过滤级别。默认时,JBoss会同时在控制台和日志文件(位于log/server.log文件中)中生成输出信息。 一共存在5个基本的日志级别:DEBUG、INFO、WARN、ERROR以及FATAL。其中,控制台的日志入口(threshold)为INFO,即用户通过控制台能够浏览到提示信息、警告信息、错误信息,但是调试信息查看不到。相比之下,JBoss并没有为server.log文件设置任何入口,因此所有生成的消息将记录到server.log文件中。如果JBoss运行过程中出现了错误,则通过控制台可能找不到用户有用的信息,因此建议通过server.log文件查看是否有调试信息可供解决问题所用。然而,请注意,通过调整日志入口能够在控制台查看到调试信息,但是这并没有保证所有的JBoss消息都将记录到server.log文件中。因此,用户还需要为单个的Category设置不同的日志级别。比如,log4j.xml给出了如下Category。

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

8 专注于Java EE平台、敏捷方法及Open Source技术咨询

它将所有的JBoss相关类的日志级别限制到INFO,即同那些含有具体日志级别的Category隔离开。如果将INFO更换为DEBUG,则将生成更详细的日志输出。 本书将再介绍另外一个实例:将CMP引擎的日志输出级别设置为DEBUG,并将其定位到cmp.log文件中,从而可供用户分析生成的SQL命令。因此,需要添加如下代码到log4j.xml文件中。

这将创建新的文件Appender,并指定将它用于org.jboss.ejb.plugins.cmp包的Logger(或Category)。第7章讨论CMP时,如果使用该实例将大有益处。 由于文件Appender设置为每日创建新的日志文件,因此JBoss不会每次启动服务器时创建新的日志文件,而且也不会总是将日志信息记录到单个文件中。当前的日志文件为cmp.log,更早的日志文件名是通过将具体日期添加到server而生成的。用户应该还注意到,log目录包含了Web容器生成的HTTP请求日志。 2.2.3 安全性服务

安全性域信息存储在login-config.xml文件中,其包含了许多安全性域定义。各个安全性域指定了许多JAAS3登陆模块,供安全性域认证使用。当用户需要在应用中使用安全性时,需要在JBoss特定部署描述符jboss.xml或jboss-web.xml中指定待使用的安全性域名。本节将快 3

Java认证和授权服务。JBoss使用JAAS提供插入式认证模块。用户可以使用现有的认证模块,或者可以开发更适合自身需求的认证模块。

9www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

JBoss中文文档

专注于JavaEE平台、敏捷方法及OpenSource技术咨询第2章JBoss服务器--快速上手2.1服务器结构至此,用户应该已完成了JBoss应用服务器的下载和首次运行。接下来,用户需要了解安装后的JBoss目录结构及其相应的内容。粗略看后,用户会发现其存在很多目录,因此很
推荐度:
点击下载文档文档为doc格式
38ywy891bi6tck19hlml
领取福利

微信扫码领取福利

微信扫码分享