深入理解 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=$?
我们非常easy发现,这些參数是从启动脚本中传入。
调试 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 模式启动过程的更多相关文章
- 深入理解 JBoss 7/WildFly Domain 模式启动过程
概述 JBoss 7/WildFly 以 domain 模式启动时会启动多个 JVM.比如例如以下通过启动脚本启动 domain 模式: ./domain.sh 启动后我们查看进程: [kylin@l ...
- JBoss 7/WildFly Domain 模式怎样配置 Server 启动的 JVM 參数
本文演示JBoss 7/WildFly Domain 模式怎样配置 Server 启动的 JVM 參数: 例如以下编辑Domain 模式配置文件 domain/configuration/domain ...
- flink安装及standalone模式启动、idea中项目开发
安装 环境 Ubuntu 18 jdk8 flink-1.8.1 安装步骤 安装jdk(略) 下载flink-1.8.1-bin-scala_2.12.tgz,解压到指定目录 wget http:// ...
- Flink架构分析之Standalone模式启动流程
概述 FLIP6 对Flink架构进行了改进,引入了Dispatcher组件集成了所有任务共享的一些组件:SubmittedJobGraphStore,LibraryCacheManager等,为了保 ...
- Spark环境搭建(七)-----------spark的Local和standalone模式启动
spark的启动方式有两种,一种单机模式(Local),另一种是多机器的集群模式(Standalone) Standalone 搭建: 准备:hadoop001,hadoop002两台安装spark的 ...
- PowerPC-MPC56xx Flash模式启动过程
https://mp.weixin.qq.com/s/SpBOfzJJ1OizYP-rsLJVqQ Flash启动模式为最常用模式. 一般情况下,芯片上电之后,从flash起始位置读取第一条指令的 ...
- 在WildFly中运行多个standalone模式的实例
WildFly作为一款优秀的EJB容器,其前身为JBoss AS.JBoss作为一款开源的应用服务器,被广泛的应用在各种项目当中.假设我们现在有这样一个项目,他是以standalone的模式运行在 ...
- JBoss AS7(Application Server 7)的Standalone模式和Domain模式
JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...
- CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
CAS (8) -- Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端) jboss版本: jboss-eap-6.4-CVE-2015-7501 jdk版本 ...
随机推荐
- test code
<?php abstract class Mediator{ abstract public function send($message, $colleague); } abstract cl ...
- Windows VS下搭建cocos2d-x环境搭建
VS2010以上版本(eg:VS2012/VS2013,这里本人用VS2013) 1.环境.安装包准备 2.python安装 3.cocos2d-x安装包解压安装 4.环境变量配置 5.执行setup ...
- 03-IOSCore - XML及解析、Plist
一.XML 可扩展标记语言 是什么?是一段有规范的字符串, 用在哪?用在任何地方 语法: * 结点Node <结点名 属性名="属性值"> 结点内容 </结点名& ...
- Jquery学习笔记:获取jquery对象的基本方法
jquery最大的好处是将js对html页面的操作(读写)进行了封装,隔离了浏览器的差异性,并简化了操作,和提供了强大的功能. 在web页面中,所有的js操作都是围绕操作dom对象来的.而jquery ...
- Android学习笔记:ActionBar使用介绍
一.基本概念 最权威和官方的介绍请看google的api文档 http://developer.android.com/training/basics/actionbar/setting-up.htm ...
- MUI跳转页面传值
1.打开新的页面.通过 mui.openWindow 打开页面extras参数传递参数 mui.openWindow({ id: "yingshou-" + newid, url: ...
- SQL 根据时间和打印状态抽取记录
1.首先要是没有打印的记录. 2.其次是要按照时间,时间是要按照倒序排列. 下载文件的URL and order by 上传时间 desc *是否打印,使用字段bit,0是没有打印,1是已经打印
- ModelConvertHelper(将DataTable转换成List<model>)
public class ModelConvertHelper<T> where T : new() { public static IList<T> Conve ...
- BZOJ 3545: [ONTAK2010]Peaks( BST + 启发式合并 + 并查集 )
这道题很好想, 离线, 按询问的x排序从小到大, 然后用并查集维护连通性, 用平衡树维护连通块的山的权值, 合并就用启发式合并.时间复杂度的话, 排序是O(mlogm + qlogq), 启发式合并是 ...
- teamviewer无法启动
在 Linux.Mac OS X和 Windows下都可以用,但在 Linux 下无法启动时怎么办? 笔者回家工作时,都会用 Teamviewer 连线到其他 Linux 桌面,但某天起 Teamvi ...