我的Blog我做主^_^

走向一条通往JAVA的不归路...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  64 随笔 :: 68 文章 :: 77 评论 :: 0 Trackbacks

1.      org.jboss.Main.main(String[]) 为入口.

2.      main 函数创建一个名叫”jboss”的线程组, 然后创建一个属于该组的线程, 在线程中执行boot方法.

3.      boot 方法首先处理main函数中的参数(及一些其它的系统环境设置), 接着就用系统的属性创建了org.jboss.system.server.ServerLoader实例[new ServerLoader(props)].

4.      ServerLoader 注册Jboss相关的类路径, 包括XML解析器, jboss-jmx.jar, concurrent.jar及其它的一些额外的类路径.

5.      ServerLoader 通过load(ClassLoader)方法创建Jboss Server实例. 参数ClassLoaderClassLoader parentCL = Thread.currentThread(). getContextClassLoader( )得到的当前线程的类加载器. 创建的Server实例是org.jboss.system.server.Server接口的实现. load(ClassLoader)方法的细节:

Ø        jar包及在ServerLoader中注册的类路径创建一个URLClassLoader的实例, 把传入的ClassLoader作为该URLClassLoaderparent.

Ø        Server 接口的实现类由系统属性 jboss.server.type决定, 默认是      org.jboss.system.server.ServerImpl.

Ø        URLClassLoader 通过无参构造函数加载Server接口实现的实例. 在加载前把当前线程的类加载器置为该URLClassLoader, 在加载完成后再置回之前传入的ClassLoader.

6.      Server 实例用系统属性进行初始化[server.init(props)].

7.      服务起动[server.start()]. 起动过程的默认实现如下:

Ø        把当前线程类型加载器置为加载该Server接口实现实例的ClassLoader.

Ø        jboss域内, 通过MBeanServerFactorycreateMBeanServer(String)方法创建MbeanServer实例.

Ø        MBean Server上注册ServerImplServerConfigImpl两个MBean.

Ø        初始化统一的类加载仓库(unified class loader repository), 用来装载服务器配置目录及其它可选目录下的jar文件. 对于每一个jar文件和类目录都会创建一个相应的org.jboss.jmx.loading.UnifiedClassLoader实例, 并且注册到统一的仓库中. 其中一个UnifiedClassLoader实例会被设置为当前线程上下文的ClassLoader. [?: This effectively makes allUnifiedClassLoaders available through the thread context class loader.]

Ø        接下来创建org.jboss.system.ServiceControllerMBean实例. ServiceController管理JBoss MBean服务的生命周期.

Ø        org.jboss.deployment.MainDeployer 实例被创建并起动. MainDeployer管理部署的依赖和部署的定向.

Ø        org.jboss.deployment. JARDeployer 实例被创建并起动. JARDeployer处理jar包的部署.

Ø        org.jboss.deployment. SARDeployer 实例被创建并起动. SARDeployer处理JBoss MBean服务的部署.

Ø        MainDeployer 对当前服务器文件环境里conf/jboss-service.xml定义的服务进行部署.

启动过程结束. 把当前线程上下文类加载器置回为起动前的ClassLoader.

http://www.blogjava.net/sharajava/archive/2006/07/21/59332.html

posted on 2007-01-28 09:28 java_蝈蝈 阅读(718) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问