`
wyz191
  • 浏览: 93277 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JBoss启动过程

阅读更多

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实例. 参数ClassLoaderClassLoader parentCL = Thread.currentThread(). getContextClassLoader( )得到的当前线程的类加载器. 创建的Server实例是org.jboss.system.server.Server接口的实现. load(ClassLoader)方法的细节:<o:p></o:p>

Ø        jar包及在ServerLoader中注册的类路径创建一个URLClassLoader的实例, 把传入的ClassLoader作为该URLClassLoaderparent. <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域内, 通过MBeanServerFactorycreateMBeanServer(String)方法创建MbeanServer实例. <o:p></o:p>

Ø        MBean Server上注册ServerImplServerConfigImpl两个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.ServiceControllerMBean实例. 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 介绍 2 第2章 JBoss启动步骤 11...第3章 JBoss启动过程中需要调用配置文件及含义 14 第4章 JBoss运行过程分析 18 第5章 JBoss运行过程中输出信息及含义 29

    JBoss Application Server的启动过程

    在研读了JBoss部分源代码后,我对JBoss的启动过程做了点总结。

    JBoss服务器

    JBoss压缩文件包括:jboss 4 2 2 GA zip JBoss5 0安装和JBoss5 0启动时遇到的问题以及解决办法 txt JBoss配置mysql数据库连接池和配置过程中的详细代码 txt和配置JBoss数据源 txt 欢迎下载

    jboss 集群配置

    JBOSS4.0.2 HTTP集群设置之一:...会话状态复制由JBOSS本身进行控制,当JBOSS以all的设置方式运行时,默认已启动了会话状态复制。 负载均衡顾名思义,就是希望集群中的节点均衡的提供服务,以防止某一节点负载过中,

    The JBoss Kernel

    The JBoss Kernel讲述了Jboss启动后的一系列过程和Jboss classLoading机制,以及Jboss sar,ear等包的发布,是学习Jboss机制的不错资料

    linux 下安装jdk、tomcat、jboss

    linux 下安装jdk、tomcat、jboss 全过程包含tomcat和jboss自启动

    qc安装问题

    qc11安装过程中遇到的错误包括JBOSS启动失败,页面无法访问的问题

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1. ...

    WildFlyApp:使用官方JBoss Docker映像和有用的增强功能在WildFly 10上运行JEE App的示例Docker容器

    通过有用的配置和部署过程来增强它。 该映像旨在使在Wildfly应用程序服务器上启动,配置,部署和运行JEE应用程序尽可能简单。 它显示了如何在环境变量上启用运行时配置,以使其真正易于部署大量此映像。 用法 首先...

    QC安装后无法启动之解决方案

    1. 安装之前 在 我的电脑-&gt;属性-&gt;高级-&gt;性能设置-&gt;数据执行保护:选择“仅为基本Windows程序和服务启用DEP”,重启一下电脑 2. 安装IIS,新建一个站点 3. 安装SQL Server(我的QC,连接...5.安装完成之后,启动JBoss

    jboss-scripts

    我不再维护这个仓库了。... start或start async :触发​​并忘记,即使以后启动过程失败也会返回 true start sync : 启动 JBoss 进程,只有在验证主机状态后才存在 启动控制台:启动 JBoss 和尾部

    camel-jbpm-demo:使用Apache Camel-jBPM连接器的JBoss Fuse和JBoss BPM Suite集成演示

    在此演示中,我们仅启动过程并传递过程参数。 ####使用JBoss Fuse 6.2和JBoss BPMS运行演示演示将在Fuse上运行的骆驼路线与在BPMS上运行的业务流程连接起来。 它由两个截然不同的部分组成,要端到端地运行演示,您...

    JSP + EJB + Servlet 实例

    配置信息:使用JBOSS和MYsql数据库,在MYsql建立一个SSH数据库,然后数据库的名字和密码在jboss里配置一下,最后配置EJB工程内的XML文件,修改为creat-drop即可在项目启动过程中自动建立创建表。

    dcm4chee-2.18.3-mysql

    dcm4chee服务器2.18.3版本对应mysql的安装包文件,安装过程参考:https://blog.csdn.net/zssureqh/article/details/44535405

    ws-release:网络故事发布流程

    启动生产服务器 入门 确保你已经安装了 java 并在项目的主pom.xml文件所在的目录中运行以下命令: $ java -jar release.jar 选项 --jboss="/路径" 工件将被部署到的 JBoss 服务器的根目录路径。 --version=0.0.0 ...

    camel-stop-route-on-producer-flow-exception:该项目演示了当A-MQ打开生产者流控制时骆驼路线会自行停止的过程

    JBoss A-MQ 6.1(在远程代理上启动生产者流控制) 安装和测试- 编辑src/resources/etc/nz.section6.config.properties的配置文件以指向嵌入式和远程代理 使用mvn clean install创建要部署的捆绑软件 将独立A-MQ上...

    wildfly-arquillian:Wildfly Arquillian适配器

    从3.0.0版本开始,还有一个可启动的JAR适配器。 3.0.0以下的版本应与WildFly和JBoss EAP 7.0及更高版本兼容。 版本3.0.0至少需要WildFly 13或JBoss EAP 7.2。 发现错误或想要新功能? 请在上提交错误。建造当前的...

    javaee登陆页面源码-lab2:实验室2

    java ...实验目的 EJB调用和练习 实验任务 理解EJB,利用wildfly服务器容器进行远程调用。 建立有状态的Java Bean,实现以下功能: ...操作用户登录后,可进行校友的检索、修改、删除、统计等功能;...然后启动JBOSS,访问

Global site tag (gtag.js) - Google Analytics