深入理解 JBoss 7/WildFly Standalone 模式启动过程

概述

JBoss 7/WildFly Standalone 模式启动过程大致如下:

启动脚本 standalone.sh 启动 JBoss Modules,JBoss Modules 启动 JBoss MSC,JBoss MSC 运行加载相关的 Services,本文简单以调试代码的方式,简单说明这几个步骤。

调试 jboss modules

当我们完成 JBoss 安装,我们会发现在 JBOSS_HOME 目录下有一个 `jboss-modules.jar`,该 jar 主要加载 JBoss 启动相关的 jar 包,以及启动 JBoss,我们到 JBOSS_HOME 下运行:

java -jar jboss-modules.jar -version

会输出相应结果,比如我们使用 JBoss 版本为 EAP 6.1,它对应输出的版本号为:

JBoss Modules version 1.2.0.Final-redhat-1

通过如下步骤开始调试 jboss modules:

编辑 standalone.conf,添加如下 JVM 调试参数:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y"

添加 `jboss-modules.jar` 到当前 classpath。

在 org.jboss.modules.Main 类 main() 方法中添加断点后,启动 JBoss,开始调试,如下图:

main() 方法中传入参数如下:

-mp, /home/kylin/work/eap/jboss-eap-6.1/modules,
-jaxpmodule, javax.xml.jaxp-provider,
org.jboss.as.standalone,
-Djboss.home.dir=/home/kylin/work/eap/jboss-eap-6.1,
-Djboss.server.base.dir=/home/kylin/work/eap/jboss-eap-6.1/standalone

对应 JBoss 启动脚本,standalone.sh 脚本中如下信息:

   if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
      # Execute the JVM in the foreground
      eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS          \"-Dorg.jboss.boot.log.file=$JBOSS_LOG_DIR/server.log\"          \"-Dlogging.configuration=file:$JBOSS_CONFIG_DIR/logging.properties\"          -jar \"$JBOSS_HOME/jboss-modules.jar\"          -mp \"${JBOSS_MODULEPATH}\"          -jaxpmodule "javax.xml.jaxp-provider"          org.jboss.as.standalone          -Djboss.home.dir=\"$JBOSS_HOME\"          -Djboss.server.base.dir=\"$JBOSS_BASE_DIR\"          "$SERVER_OPTS"
      JBOSS_STATUS=$?

我们很容易发现,这些参数是从启动脚本中传入。

调试 standalone 启动

同样从上面给出的启动脚本,我们可以看到启动的可执行 module 为 `org.jboss.as.standalone`,我们查看该 module 对应的描述文件 `modules/system/layers/base/org/jboss/as/standalone/main/module.xml` 中 Main 方法如下:

<module xmlns="urn:jboss:module:1.1" name="org.jboss.as.standalone">
    <main-class name="org.jboss.as.server.Main"/>

在 `org.jboss.as.server.Main` 中添加调试断点开始调试如下:

对照启动脚本,Main 方法中传入了两个参数:

-Djboss.home.dir=/home/kylin/work/eap/jboss-eap-6.1,
-Djboss.server.base.dir=/home/kylin/work/eap/jboss-eap-6.1/standalone

深入理解 JBoss 7/WildFly Standalone 模式启动过程,布布扣,bubuko.com

时间: 2024-10-07 12:04:58

深入理解 JBoss 7/WildFly Standalone 模式启动过程的相关文章

深入理解 JBoss 7/WildFly Domain 模式启动过程

概述 JBoss 7/WildFly 以 domain 模式启动时会启动多个 JVM,例如如下通过启动脚本启动 domain 模式: ./domain.sh 启动后我们查看进程: [[email protected] tdump]$ jps -l 23655 /home/kylin/work/eap/jboss-eap-6.1/jboss-modules.jar 23671 /home/kylin/work/eap/jboss-eap-6.1/jboss-modules.jar 23736 /h

JBoss 7/WildFly Domain 模式如何配置 Server 启动的 JVM 参数

本文演示JBoss 7/WildFly Domain 模式如何配置 Server 启动的 JVM 参数: 如下编辑Domain 模式配置文件 domain/configuration/domain.xml,在 <server-groups> 部分添加如下配置项: <server-groups> <server-group name="main-server-group" profile="full"> <jvm name=&

PowerPC-MPC56xx Flash模式启动过程

https://mp.weixin.qq.com/s/SpBOfzJJ1OizYP-rsLJVqQ Flash启动模式为最常用模式. 一般情况下,芯片上电之后,从flash起始位置读取第一条指令的地址,然后跳转到改地址处执行,进行一系列初始化动作. flash起始位置存放的一般为reset中断处理程序的地址. MPC56xx SoC的启动模块,做的更多.但背离了惯常做法,增加学习成本,吃力未必讨好. 一. Flash地址区间 芯片逻辑System Status and Configuration

JBoss启动过程详解

今天看了看jboss的boot.log和server.log日志,结合自己的理解和其他的资料,现对jboss的启动和加载过程做出如下总结: boot.xml是服务器的启动过程的日志,不涉及后续的操作过程 server.xml是操作过程的日志,是更加详细的,其中包含了启动的过程 本文以JBoss Application Server 4.2.1 GA(以下简称JBoss)为例,介绍它在Windows平台上的启动过程.为了方便叙述,对平台环境做以下假定:Java运行时的安装路径为C:/Java,JB

iPhone应用程序的启动过程

Phone的入口函数main,这之后它有是怎样启动应用程序,初始化的呢,这些都是通过 UIApplicationMain 来实现的. 其启动的流程图大致如下图所示: 1 int retVal = UIApplicationMain(argc, argv, nil, nil); 通过上面的语句,创建UIApplication实例.同时,查看应用程序的 Info.plist 文件(该文件记录了一些应用程序的基础信息,比如程序名称,版本,图标等).该文件还包含应用程序资源文件的名称(nib文件,名称用

在WildFly中运行多个standalone模式的实例

WildFly作为一款优秀的EJB容器,其前身为JBoss AS.JBoss作为一款开源的应用服务器,被广泛的应用在各种项目当中.假设我们现在有这样一个项目,他是以standalone的模式运行在WildFly中,且这个项目在实际产品环境中需要被部署成多个实例,每个实例都会有不同的服务对象,比如不同的国家,不同角色的用户等等.针对于不同的服务对象,在后台的配置也会有些许的不同,比如需要连接不同的数据库等. 面对这种需求,也许你首先考虑到的是我们可以为不同的服务对象编译发行不同的发布包,这样做也许

Boss7 Standalone模式开发配置

PS:以下配置均添加到standalone.xml文件中. 1.Get请求编码设置,将如下配置添加到标签之后 2.开启开发模式:搜索“urn:jboss:domain:web:1.1”,在此标签下添加如下配置: 3.虚拟域名设置 搜索“urn:jboss:domain:web:1.1”,在此标签下添加类似如下配置: www.xxx.com">                       www.xxx.com"/> 4.端口设置 5.“无聊”异常屏蔽 部署应用启动后,出现J

JBoss 7 配置成windows启动服务

将Jboss7 server 配置成一个windows启动服务的两个文件,部署步骤如下: 1.    先检查是否配置java_home和jboss_home的环境变量,如没配置上先配置,如我的是JBOSS_HOME=D:\jboss-as-7.1.1.Final. 2.    将附件中jbosssvc.exe和service.bat文件拷贝到%JBOSS_HOME%\bin 目录下,如我的D:\jboss-as-7.1.1.Final\bin. 3.    开始-〉运行-〉输入”cmd”,进入命

Spark集群-Standalone 模式

Spark 集群相关 来源于官方, 可以理解为是官方译文, 外加一点自己的理解. 版本是2.4.4 本篇文章涉及到: 集群概述 master, worker, driver, executor的理解 打包提交,发布 Spark application standalone模式 SparkCluster 启动 及相关配置 资源, executor分配 开放网络端口 高可用(Zookeeper) 名词解释 Term(术语) Meaning(含义) Application 用户构建在 Spark 上的