1.
org.jboss.Main.main(String[])
为入口.<!----><o:p></o:p>
2.
main
函数创建一个名叫”jboss”的线程组, 然后创建一个属于该组的线程, 在线程中执行boot方法.<o:p></o:p>
3.
boot
方法首先处理main函数中的参数(及一些其它的系统环境设置), 接着就用系统的属性创建了org.jboss.system.server.ServerLoader实例[new ServerLoader(props)]. <o:p></o:p>
4.
ServerLoader
注册Jboss相关的类路径, 包括XML解析器, jboss-jmx.jar, concurrent.jar及其它的一些额外的类路径.<o:p></o:p>
5.
ServerLoader
通过load(ClassLoader)方法创建Jboss Server实例. 参数ClassLoader是ClassLoader parentCL = Thread.currentThread(). getContextClassLoader( )得到的当前线程的类加载器. 创建的Server实例是org.jboss.system.server.Server接口的实现. load(ClassLoader)方法的细节:<o:p></o:p>
Ø
用jar包及在ServerLoader中注册的类路径创建一个URLClassLoader的实例, 把传入的ClassLoader作为该URLClassLoader的parent. <o:p></o:p>
Ø
Server
接口的实现类由系统属性 jboss.server.type决定, 默认是 org.jboss.system.server.ServerImpl.<o:p></o:p>
Ø
URLClassLoader
通过无参构造函数加载Server接口实现的实例. 在加载前把当前线程的类加载器置为该URLClassLoader, 在加载完成后再置回之前传入的ClassLoader. <o:p></o:p>
6.
Server
实例用系统属性进行初始化[server.init(props)].<o:p></o:p>
7.
服务起动[server.start()]. 起动过程的默认实现如下:<o:p></o:p>
Ø
把当前线程类型加载器置为加载该Server接口实现实例的ClassLoader.<o:p></o:p>
Ø
在jboss域内, 通过MBeanServerFactory的createMBeanServer(String)方法创建MbeanServer实例. <o:p></o:p>
Ø
在MBean Server上注册ServerImpl和ServerConfigImpl两个MBean.<o:p></o:p>
Ø
初始化统一的类加载仓库(unified class loader repository), 用来装载服务器配置目录及其它可选目录下的jar文件. 对于每一个jar文件和类目录都会创建一个相应的org.jboss.jmx.loading.UnifiedClassLoader实例, 并且注册到统一的仓库中. 其中一个UnifiedClassLoader实例会被设置为当前线程上下文的ClassLoader. [?: This effectively makes allUnifiedClassLoaders available through the thread context class loader.]<o:p></o:p>
Ø
接下来创建org.jboss.system.ServiceController的MBean实例. ServiceController管理JBoss MBean服务的生命周期. <o:p></o:p>
Ø
org.jboss.deployment.MainDeployer
实例被创建并起动. MainDeployer管理部署的依赖和部署的定向. <o:p></o:p>
Ø
org.jboss.deployment.
JARDeployer
实例被创建并起动. JARDeployer处理jar包的部署.<o:p></o:p>
Ø
org.jboss.deployment.
SARDeployer
实例被创建并起动. SARDeployer处理JBoss MBean服务的部署.<o:p></o:p>
Ø
MainDeployer
对当前服务器文件环境里conf/jboss-service.xml定义的服务进行部署.<o:p></o:p>
启动过程结束. 把当前线程上下文类加载器置回为起动前的ClassLoader.
http://www.blogjava.net/sharajava/archive/2006/07/21/59332.html
分享到:
相关推荐
在本文中,我们将深入探讨JBoss的启动过程及其相关知识点。 1. **JBoss目录结构**: JBoss的安装目录包含多个子目录,如`bin`、`server`、`deploy`等。`bin`目录下有启动和停止服务器的脚本,`server`目录则包含了...
在JBoss启动过程中,JDK环境的正确配置至关重要。如果JDK版本不兼容或路径设置有误,很可能导致JBoss启动失败,表现为“一闪而过”的现象。具体而言,以下几点需注意: - **JDK版本**:确保安装的JDK版本与JBoss...
**JBoss启动顺序** JBoss的启动过程大致分为以下几个阶段: 1. **环境准备**:首先,JBoss会检查运行环境,包括Java环境(JDK)是否安装正确,版本是否兼容,以及相关的系统变量如JAVA_HOME是否设置。 2. **配置...
JBoss启动与运行过程的研究,JBoss启动与运行过程的研究
JBoss启动的入口 一旦启动脚本成功执行,将调用`C:\Java\bin\java`命令,启动Java虚拟机并加载`org.jboss.Main`类中的`main`方法作为启动入口。`Main.main`方法会创建一个名为“jboss”的线程组,并在该线程组中...
### Linux下安装JBoss并设置自启动服务 在Linux环境下安装JBoss并配置其...通过以上步骤,我们完成了在Linux环境下JBoss的安装及配置自启动服务的过程。这不仅方便了日常的运维工作,还提高了系统的稳定性和可用性。
本篇文章将详细解析JBoss的配置过程,旨在帮助初学者更好地理解和操作JBoss服务器。 一、JBoss安装与环境准备 在开始配置前,确保已安装了Java Development Kit (JDK)。JBoss需要JDK来运行,因此请先下载并安装适合...
在IT领域,特别是Java应用服务器环境下,JBoss与MySQL数据库的集成是常见需求之一,而JNDI(Java Naming and Directory Interface)在此过程中扮演着关键角色。本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,...
执行脚本后,控制台会显示JBoss的启动过程。 6. **测试JBoss**: 启动成功后,可以通过浏览器访问`http://localhost:8080`,如果看到JBoss的欢迎页面,说明安装和启动均成功。默认情况下,JBoss使用8080端口提供...
Jboss 项目部署文档 Jboss 项目部署文档是指在 Jboss 服务器上部署项目的详细步骤,...Jboss 项目部署文档详细地描述了 Jboss 项目部署的整个过程,包括环境变量的配置、项目打包、配置文件的修改、JNDI 的配置等。
- lib目录:JBoss启动时加载的一般JAR文件,这些JAR文件可供所有配置共享。 - server目录:包含服务器配置文件,每个配置有独立的子目录。 - server/all目录:JBoss的完整配置,启动所有服务,包括集群和IIOP。 - ...
【JBoss 用 ANT 部署详解】 在IT行业中,JBoss是一个广泛使用的开源Java应用服务器,它支持Java EE规范,包括EJB(Enterprise JavaBeans)。ANT是Apache项目的一个构建工具,它允许开发者通过XML配置文件来自动化...
对于初学者,使用JBoss可能会遇到一些挑战,因为它的配置和部署过程并不像许多其他应用服务器那样提供图形化界面。这使得EJB的开发和部署相对复杂。本文旨在通过实例简化这一过程,帮助新用户快速熟悉在JBoss 3.0中...
10. **图形化示意图**:为了更直观地理解配置过程,可以参考提供的“图形化示意图.docx”文件,该文件通常包含步骤的截图和流程图,帮助开发者清晰了解每个配置阶段。 通过以上步骤,我们完成了MyEclipse中JBoss的...
同时,`JBOSS_HOME\standalone\log`或`JBOSS_HOME/domain/log`目录下的日志文件也会记录详细的启动过程和可能的错误。 8. **更新与删除服务**: 当需要更新JBoss服务或移除服务时,可以使用以下命令: ```cmd ...
本资源摘要信息将详细介绍 JBOSS 在 Windows 平台上的安装和部署过程,涵盖了环境准备、JBOSS 安装、环境变量设置、运行和终止 JBOSS、部署 WAR 文件等多个方面的知识点。 一、环境准备 在安装 JBOSS 之前,需要...
- 配置过程中,确保MyEclipse和JBoss的版本兼容。不同版本的MyEclipse可能对JBoss的支持程度不同,所以建议使用最新稳定版的MyEclipse。 - 为避免冲突,关闭防火墙或允许MyEclipse通过防火墙访问端口,因为JBoss...