博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解 JBoss 7/WildFly Standalone 模式启动过程
阅读量:6241 次
发布时间:2019-06-22

本文共 1990 字,大约阅读时间需要 6 分钟。

概述

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=$?
我们非常easy发现,这些參数是从启动脚本中传入。

调试 standalone 启动

相同从上面给出的启动脚本,我们能够看到启动的可执行 module 为 `org.jboss.as.standalone`,我们查看该 module 相应的描写叙述文件 `modules/system/layers/base/org/jboss/as/standalone/main/module.xml` 中 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
你可能感兴趣的文章
语音转文字如何在线转换的?
查看>>
PXE批量实现自动化安装系统
查看>>
tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
查看>>
为域用户创建漫游用户配置文件
查看>>
sql server 第二讲
查看>>
什么是壳 - 脱壳篇01
查看>>
数据库基础
查看>>
python里面 循环明细对比 相同人员明细,生成同一订单里面
查看>>
linux top 命令的一些解释
查看>>
前端之HTML内容
查看>>
关于Datagridview控件用法的一些总结
查看>>
Mac 常用设置
查看>>
linux常用命令(22)gzip命令
查看>>
找出一个字符串中第一个只出现一次的字符
查看>>
CSS学习笔记(一)深入理解position属性和float属性
查看>>
xml入门
查看>>
python Flask框架mysql数据库配置
查看>>
[20150529]用户与用户组管理
查看>>
baidu__git_android
查看>>
ZC_源码编译真机烧写_20160424
查看>>