锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1.聽聽聽聽聽 鍓嶇紑1.1鐨勬柟娉?span lang="EN-US">, 浠h〃鍔犺澆鍜岃В鏋?span lang="EN-US">XML鏈嶅姟鎻忚堪鏂囦歡鐨勮繃紼?span lang="EN-US">. 2.聽聽聽聽聽 鍓嶇紑1.2鐨勬柟娉?span lang="EN-US">, 浠h〃瀵?span lang="EN-US">XML鏈嶅姟鎻忚堪鏂囦歡涓被璺緞鏉$洰鐨勫鐞?span lang="EN-US">. 榪欎釜榪囩▼鍒涘緩鐙珛鐨勯儴緗?span lang="EN-US">, 浣垮緱jar鍜岀被鐩綍瀵逛簬鐩稿簲鐨勭粺涓綾誨姞杞藉櫒(UnifiedClassLoader)鍙敤. 榪欎釜UnifiedClassLoader鏄敞鍐屽埌緇熶竴鐨勭被鍔犺澆鍣ㄤ粨搴撲腑鐨?span lang="EN-US">. 3.聽聽聽聽聽 鍓嶇紑1.3鐨勬柟娉?span lang="EN-US">, 浠h〃澶勭悊鏈嶅姟鎻忚堪鏂囦歡涓畾涔夌殑鏈湴鐩綍鏉$洰鐨勮繃紼?span lang="EN-US">. 榪欎釜榪囩▼鎶婂湪璺緞灞炴т腑鎸囧畾鐨?span lang="EN-US">SAR鐩稿叧鏉$洰澶嶅埗涓浠藉埌server/<config>/db鐩綍涓?span lang="EN-US">. 4.聽聽聽聽聽 鏂規(guī)硶1.4, 浠h〃瀵瑰凡緇忛儴緗茬殑鏈嶅姟涓祵濂楃殑鍙儴鍗曞厓鐨勯儴緗茶繃紼?span lang="EN-US">. 瀛愰儴緗查」鐩鍒涘緩騫惰鍔犲叆鍒版湇鍔¢儴緗蹭俊鎭殑瀛愰儴緗查」鍒楄〃涓?span lang="EN-US">. 5.聽聽聽聽聽 鏂規(guī)硶2.1, SAR閮ㄧ講鍗曞厓鐩稿簲鐨?span lang="EN-US">UnifiedClassLoader(鏈韓涔熸槸MBean)琚敞鍐屽埌MBean Server涓?span lang="EN-US">, 榪欐牱瀹冨氨鍙互琚敤鏉ュ姞杞?span lang="EN-US">SAR涓殑MBean浜?span lang="EN-US">. 6.聽聽聽聽聽 鏂規(guī)硶2.2, 鍒涘緩XML鏈嶅姟鎻忚堪鏂囦歡涓畾涔夌殑姣忎釜MBean騫剁敤鎻忚堪鏂囦歡涓粰瀹氱殑鍊煎垵濮嬪寲鍏跺睘鎬?span lang="EN-US">. 榪欎簺宸ヤ綔閫氳繃璋冪敤ServiceController鐨?span lang="EN-US">install(Element, ObjectName)鏂規(guī)硶鏉ュ畬鎴愮殑. 7.聽聽聽聽聽 鏂規(guī)硶 8.聽聽聽聽聽 鍓嶇紑3.1鐨勬柟娉?span lang="EN-US">, 浠h〃MBean瀹炰緥鐨勮搗鍔ㄨ繃紼?span lang="EN-US">. 瀵逛簬鍒涘緩濂界殑姣忎釜MBean瀹炰緥, 鑾峰彇鍏?span lang="EN-US">JMX瀵硅薄鍚嶅茍鐢?span lang="EN-US">ServiceController澶勭悊鏈嶅姟鐢熷懡鍛ㄦ湡涓殑start姝ラ. ServiceController澶勭悊MBean鏈嶅姟鐨勪緷璧栧叧緋?span lang="EN-US">, 鍙湁褰撴墍鏈変緷璧栭兘婊¤凍鏃?span lang="EN-US">, start鏂規(guī)硶鎵嶄細琚皟鐢?span lang="EN-US">.
]]>
2.聽聽聽聽聽
main
鍑芥暟鍒涘緩涓涓悕鍙?span lang="EN-US">鈥漥boss鈥?/span>鐨勭嚎紼嬬粍, 鐒跺悗鍒涘緩涓涓睘浜庤緇勭殑綰跨▼, 鍦ㄧ嚎紼嬩腑鎵цboot鏂規(guī)硶.
3.聽聽聽聽聽
boot
鏂規(guī)硶棣栧厛澶勭悊main鍑芥暟涓殑鍙傛暟(鍙婁竴浜涘叾瀹冪殑緋葷粺鐜璁劇疆), 鎺ョ潃灝辯敤緋葷粺鐨勫睘鎬у垱寤轟簡org.jboss.system.server.ServerLoader瀹炰緥[new ServerLoader(props)].
4.聽聽聽聽聽
ServerLoader
娉ㄥ唽Jboss鐩稿叧鐨勭被璺緞, 鍖呮嫭XML瑙f瀽鍣?span lang="EN-US">, jboss-jmx.jar, concurrent.jar鍙婂叾瀹冪殑涓浜涢澶栫殑綾昏礬寰?span lang="EN-US">.
5.聽聽聽聽聽
ServerLoader
閫氳繃load(ClassLoader)鏂規(guī)硶鍒涘緩Jboss Server瀹炰緥. 鍙傛暟ClassLoader鏄?span lang="EN-US">ClassLoader parentCL = Thread.currentThread(). getContextClassLoader( )寰楀埌鐨勫綋鍓嶇嚎紼嬬殑綾誨姞杞藉櫒. 鍒涘緩鐨?span lang="EN-US">Server瀹炰緥鏄?span lang="EN-US" style="COLOR: #99cc00">org.jboss.system.server.Server鎺ュ彛鐨勫疄鐜?span lang="EN-US">. load(ClassLoader)鏂規(guī)硶鐨勭粏鑺?span lang="EN-US">:
脴聽聽聽聽聽聽聽
鐢?span lang="EN-US">jar鍖呭強鍦?span lang="EN-US">ServerLoader涓敞鍐岀殑綾昏礬寰勫垱寤轟竴涓?span lang="EN-US">URLClassLoader鐨勫疄渚?span lang="EN-US">, 鎶婁紶鍏ョ殑ClassLoader浣滀負璇?span lang="EN-US">URLClassLoader鐨?span lang="EN-US">parent.
脴聽聽聽聽聽聽聽
Server
鎺ュ彛鐨勫疄鐜扮被鐢辯郴緇熷睘鎬?jboss.server.type鍐沖畾, 榛樿鏄?span lang="EN-US">聽聽聽聽聽 org.jboss.system.server.ServerImpl.
脴聽聽聽聽聽聽聽
URLClassLoader
閫氳繃鏃犲弬鏋勯犲嚱鏁板姞杞?span lang="EN-US">Server鎺ュ彛瀹炵幇鐨勫疄渚?span lang="EN-US">. 鍦ㄥ姞杞藉墠鎶婂綋鍓嶇嚎紼嬬殑綾誨姞杞藉櫒緗負璇?span lang="EN-US">URLClassLoader, 鍦ㄥ姞杞藉畬鎴愬悗鍐嶇疆鍥炰箣鍓嶄紶鍏ョ殑ClassLoader.
6.聽聽聽聽聽
Server
瀹炰緥鐢ㄧ郴緇熷睘鎬ц繘琛屽垵濮嬪寲[server.init(props)].
7.聽聽聽聽聽
鏈嶅姟璧峰姩[server.start()]. 璧峰姩榪囩▼鐨勯粯璁ゅ疄鐜板涓?span lang="EN-US">:
脴聽聽聽聽聽聽聽
鎶婂綋鍓嶇嚎紼嬬被鍨嬪姞杞藉櫒緗負鍔犺澆璇?span lang="EN-US">Server鎺ュ彛瀹炵幇瀹炰緥鐨?span lang="EN-US">ClassLoader.
脴聽聽聽聽聽聽聽
鍦?span lang="EN-US">jboss鍩熷唴, 閫氳繃MBeanServerFactory鐨?span lang="EN-US">createMBeanServer(String)鏂規(guī)硶鍒涘緩MbeanServer瀹炰緥.
脴聽聽聽聽聽聽聽
鍦?span lang="EN-US">MBean Server涓婃敞鍐?span lang="EN-US">ServerImpl鍜?span lang="EN-US">ServerConfigImpl涓や釜MBean.
脴聽聽聽聽聽聽聽
鍒濆鍖栫粺涓鐨勭被鍔犺澆浠撳簱(unified class loader repository), 鐢ㄦ潵瑁呰澆鏈嶅姟鍣ㄩ厤緗洰褰曞強鍏跺畠鍙夌洰褰曚笅鐨?span lang="EN-US">jar鏂囦歡. 瀵逛簬姣忎竴涓?span lang="EN-US">jar鏂囦歡鍜岀被鐩綍閮戒細鍒涘緩涓涓浉搴旂殑org.jboss.jmx.loading.UnifiedClassLoader瀹炰緥, 騫朵笖娉ㄥ唽鍒扮粺涓鐨勪粨搴撲腑. 鍏朵腑涓涓?span lang="EN-US">UnifiedClassLoader瀹炰緥浼氳璁劇疆涓哄綋鍓嶇嚎紼嬩笂涓嬫枃鐨?span lang="EN-US">ClassLoader. [?: This effectively makes allUnifiedClassLoaders available through the thread context class loader.]
脴聽聽聽聽聽聽聽
鎺ヤ笅鏉ュ垱寤?span lang="EN-US" style="COLOR: #99cc00">org.jboss.system.ServiceController鐨?span lang="EN-US">MBean瀹炰緥. ServiceController綆$悊JBoss MBean鏈嶅姟鐨勭敓鍛藉懆鏈?span lang="EN-US">.
脴聽聽聽聽聽聽聽
org.jboss.deployment.MainDeployer
瀹炰緥琚垱寤哄茍璧峰姩. MainDeployer綆$悊閮ㄧ講鐨勪緷璧栧拰閮ㄧ講鐨勫畾鍚?span lang="EN-US">.
脴聽聽聽聽聽聽聽
org.jboss.deployment.
JARDeployer
瀹炰緥琚垱寤哄茍璧峰姩. JARDeployer澶勭悊jar鍖呯殑閮ㄧ講.
脴聽聽聽聽聽聽聽
org.jboss.deployment.
SARDeployer
瀹炰緥琚垱寤哄茍璧峰姩. SARDeployer澶勭悊JBoss MBean鏈嶅姟鐨勯儴緗?span lang="EN-US">.
脴聽聽聽聽聽聽聽
MainDeployer
瀵瑰綋鍓嶆湇鍔″櫒鏂囦歡鐜閲?span lang="EN-US">conf/jboss-service.xml瀹氫箟鐨勬湇鍔¤繘琛岄儴緗?span lang="EN-US">.