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
分享到:
相关推荐
本人自己收集整理资料,如有错误之处,请谅解。 第1章 JBoss 介绍 2 第2章 JBoss启动步骤 11...第3章 JBoss启动过程中需要调用配置文件及含义 14 第4章 JBoss运行过程分析 18 第5章 JBoss运行过程中输出信息及含义 29
在研读了JBoss部分源代码后,我对JBoss的启动过程做了点总结。
JBoss压缩文件包括:jboss 4 2 2 GA zip JBoss5 0安装和JBoss5 0启动时遇到的问题以及解决办法 txt JBoss配置mysql数据库连接池和配置过程中的详细代码 txt和配置JBoss数据源 txt 欢迎下载
JBOSS4.0.2 HTTP集群设置之一:...会话状态复制由JBOSS本身进行控制,当JBOSS以all的设置方式运行时,默认已启动了会话状态复制。 负载均衡顾名思义,就是希望集群中的节点均衡的提供服务,以防止某一节点负载过中,
The JBoss Kernel讲述了Jboss启动后的一系列过程和Jboss classLoading机制,以及Jboss sar,ear等包的发布,是学习Jboss机制的不错资料
linux 下安装jdk、tomcat、jboss 全过程包含tomcat和jboss自启动
qc11安装过程中遇到的错误包括JBOSS启动失败,页面无法访问的问题
JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1. ...
通过有用的配置和部署过程来增强它。 该映像旨在使在Wildfly应用程序服务器上启动,配置,部署和运行JEE应用程序尽可能简单。 它显示了如何在环境变量上启用运行时配置,以使其真正易于部署大量此映像。 用法 首先...
1. 安装之前 在 我的电脑->属性->高级->性能设置->数据执行保护:选择“仅为基本Windows程序和服务启用DEP”,重启一下电脑 2. 安装IIS,新建一个站点 3. 安装SQL Server(我的QC,连接...5.安装完成之后,启动JBoss
我不再维护这个仓库了。... start或start async :触发并忘记,即使以后启动过程失败也会返回 true start sync : 启动 JBoss 进程,只有在验证主机状态后才存在 启动控制台:启动 JBoss 和尾部
在此演示中,我们仅启动过程并传递过程参数。 ####使用JBoss Fuse 6.2和JBoss BPMS运行演示演示将在Fuse上运行的骆驼路线与在BPMS上运行的业务流程连接起来。 它由两个截然不同的部分组成,要端到端地运行演示,您...
配置信息:使用JBOSS和MYsql数据库,在MYsql建立一个SSH数据库,然后数据库的名字和密码在jboss里配置一下,最后配置EJB工程内的XML文件,修改为creat-drop即可在项目启动过程中自动建立创建表。
dcm4chee服务器2.18.3版本对应mysql的安装包文件,安装过程参考:https://blog.csdn.net/zssureqh/article/details/44535405
启动生产服务器 入门 确保你已经安装了 java 并在项目的主pom.xml文件所在的目录中运行以下命令: $ java -jar release.jar 选项 --jboss="/路径" 工件将被部署到的 JBoss 服务器的根目录路径。 --version=0.0.0 ...
JBoss A-MQ 6.1(在远程代理上启动生产者流控制) 安装和测试- 编辑src/resources/etc/nz.section6.config.properties的配置文件以指向嵌入式和远程代理 使用mvn clean install创建要部署的捆绑软件 将独立A-MQ上...
从3.0.0版本开始,还有一个可启动的JAR适配器。 3.0.0以下的版本应与WildFly和JBoss EAP 7.0及更高版本兼容。 版本3.0.0至少需要WildFly 13或JBoss EAP 7.2。 发现错误或想要新功能? 请在上提交错误。建造当前的...
java ...实验目的 EJB调用和练习 实验任务 理解EJB,利用wildfly服务器容器进行远程调用。 建立有状态的Java Bean,实现以下功能: ...操作用户登录后,可进行校友的检索、修改、删除、统计等功能;...然后启动JBOSS,访问