æ¬æ以JBoss Application Server 4.2.1 GAï¼ä»¥ä¸ç®ç§°JBossï¼ä¸ºä¾ï¼ä»ç»å®å¨Windowså¹³å°ä¸çå¯å¨è¿ç¨ã为äºæ¹ä¾¿åè¿°ï¼å¯¹å¹³å°ç¯å¢å以ä¸åå®ï¼Javaè¿è¡æ¶çå®è£
è·¯å¾ä¸ºC:/Javaï¼JBossçå®è£
è·¯å¾ä¸ºC:/JBossã
æ¢ç¶ç¨100% Javaç¼åçJBosså
·æ跨平å°çç¹æ§ï¼é£ä¸ºä»ä¹è¿è¦å¼ºè°Windowså¹³å°å¢ï¼è¿æ¯å 为ï¼JBossçå¯å¨æ¯ä»å¹³å°ç¸å
³çèæ¬æ件å¼å§çï¼èå¨ä¸åå¹³å°ä¸çèæ¬æ件æ¯ä¸åçãä¾å¦ï¼Windowå¹³å°ä¸çèæ¬æ件æ¯run.batï¼linuxå¹³å°ä¸çèæ¬æ¯run.shã两个æ件çå
容æå¾å¤§ä¸åï¼åè½ä¹è®¸å·®ä¸å¤ï¼æ éæ¯é
ç½®å¯å¨ç¯å¢ï¼ä½æ¯ä¹æå¯è½åå¨å¹³å°ç¸å
³çå ç´ ãæåªçäºrun.batï¼å¯¹run.sh并ä¸äºè§£ï¼ä¸ºè°¨æ
èµ·è§ï¼æåªä»ç»run.batï¼å¯¹run.shä¸ä½éè¿°ã
å¨ä»ç»JBosså¯å¨è¿ç¨ä¹åï¼ææ³å
ä»ç»ä¸ä¸JBossçç»æç¹å¾ï¼è¿å°æå©äºå¤§å®¶ç解å¯å¨è¿ç¨ãJBossåºäºJMXæ¡æ¶ï¼å®çç»æå°±æ¯ä¸ä¸ªMBeanSserver以åä¸äºæå¨MBeanServerä¸çMBeanãMBeanæä¾åè½ï¼MBeanServeræ¯MBeanä¹é´çéä¿¡æ»çº¿ãJMXæ¡æ¶ç好å¤å°±æ¯ç»JBoss带æ¥äºé«åº¦ççµæ´»æ§ãå¯é
ç½®æ§ãå¯é
ç½®æ§ä¹æ¯JBossçæ ¸å¿ç念ä¹ä¸ï¼å ä¹ææçJBossé¨ä»¶é½å¯ä»¥è¢«æ¿æ¢ãJBosséè¿ç³»ç»å±æ§ãé
ç½®æ件çå¤ç§æ¹æ³ï¼å¸®å©å®ç°é«åº¦çå¯é
ç½®æ§ãæ们å¯ä»¥éè¿è®¾ç½®ç³»ç»å±æ§ï¼æè
éè¿ç¼è¾é
ç½®æ件ï¼æ¥å®å¶èªå·±çJBossçæ¬ãè¿ç§å¯é
ç½®æ§ä½ç°å¨JBossçå个è§è½ï¼å¯å¨è¿ç¨åªè½çª¥ä¸æï¼è¥æ¬²ç¥å
¨è±¹ï¼å¯ä»¥ç 究ä¸ä¸JBossçEJB容å¨çå
¶å®é¨ä»¶ã
ä»ç»å®JBossçç»æç¹å¾ï¼æ们å¼å§è¿å
¥JBossçå¯å¨è¿ç¨ãæ´ä¸ªè¿ç¨å¯ä»¥å为å
个é¶æ®µï¼ä¸é¢å°ä¾æ¬¡ä»ç»ã
ä¸ãæ§è¡å¯å¨èæ¬ï¼é
ç½®å¯å¨ç¯å¢
JBossçå¯å¨è¿ç¨ä»æ§è¡run.batå¼å§ï¼run.batç主è¦å·¥ä½å°±æ¯é
ç½®å¯å¨ç¯å¢ã
JBossçå¯å¨ç¯å¢å
¶å®æ¯ä¸äºå¯å¨åæ°ï¼ä¾å¦JBossçå®è£
è·¯å¾ãjavaå½ä»¤çåæ°ãJBossç类路å¾çã
å¦æå¨é
ç½®è¿ç¨ä¸åçé误ï¼run.batçæ§è¡å°è¢«ä¸æã
run.batå°é
置以ä¸å¯å¨åæ°ï¼
JBOSS_HOME
JBossçå®è£
è·¯å¾ï¼å
¶å¼ä¸ºC:/JBoss
PATH
å°C:/JBoss/bin/nativeæ·»å å°PATHä¸ï¼nativeä¸çæ件æ¯å¹³å°ç¸å
³çï¼å¯ä»¥ä¼åJBossçæ§è½ã
JAVA
java.exeæ件çè·¯å¾ï¼å
¶å¼ä¸ºC:/Java/bin/java
JAVA_OPTSB
javaå½ä»¤çåæ°ï¼å
¶å¼ä¸º-Dprogram.name=run.bat âserver-Xms128m âXmx512m âDsun.rmi.dgc.client.gcInterval=3600000 âDsun.rmi.dgc.server.gcInterval=3600000
JBOSS_CLASSPATH
JBossçå¯å¨ç±»è·¯å¾ï¼å
¶å¼ä¸ºC:/Java/lib/tools.jar;C:/JBoss/bin/run.jarãJBossçå¯å¨åæéè¦çç±»æ件é½å¨è¿ä¸¤ä¸ªjarä¸ã
å¦æ没æ设置系ç»ç¯å¢åéJAVA_HOMEï¼é£ä¹run.batçæ§è¡å°è¢«ä¸æï¼JBosså¯å¨å¤±è´¥ãå æ¤ï¼å¨å®è£
好JBossåï¼ä¸å®è¦è®¾
ç½®JAVA_HOMEç³»ç»ç¯å¢åéã
å¦ærun.batæ§è¡é¡ºå©ï¼é£ä¹å¨æåï¼å°ä¼æ§è¡ä»¥ä¸å½ä»¤ï¼
C:/Java/bin/java -Dprogram.name=run.bat âserver-Xms128m âXmx512m âDsun.rmi.dgc.
client.gcInterval=3600000 âDsun.rmi.dgc.client.gcInterval=3600000 -Djava.endorsed.dirs=
C:/JBoss/lib/endorsed âclasspath C:/Java/lib/tools.jar;C:/JBoss/bin/run.jar org.jboss.Main/%*
%*代表run.batåé¢çå¯å¨åæ°ã
ä»è¿æ¡å½ä»¤å¼å§ï¼çæ£è¿è¡JBossç代ç ã
äºãJBosså¯å¨çå
¥å£
JBossçéæ¯ä»Main.mainæ¹æ³å¼å§ãMainè¿ä¸ªç±»ä½äºrun.jarä¸ãMain.mainæ¹æ³å建äºä¸ä¸ªå为âjbossâç线ç¨ç»ï¼ç¶åå建并è¿è¡è¯¥çº¿ç¨ç»ç线ç¨âmainâãâmainâ线ç¨å¼å§è¿è¡åï¼Main.mainæ¹æ³æ§è¡å®æ¯ï¼ä¸»çº¿ç¨ä¹éä¹ç»æãâmainâ线ç¨ç主è¦å·¥ä½æ¯è°ç¨Main.bootæ¹æ³ã
Main.bootæ¹æ³ç主è¦å·¥ä½æ¯å¤çå½ä»¤è¡åæ°ï¼ç¶åå建并è¿è¡ä¸ä¸ªæå¡å¨å®ä¾ãå½æå¡å¨å®ä¾å¼å§è¿è¡åï¼jbossçå¯å¨è¿ç¨ä¹å°±æåç»æäºãä¸é¢çå 个é¶æ®µé½æ¯bootæ¹æ³çæ§è¡è¿ç¨ã
ä¸ãå¤çå½ä»¤è¡åæ°
bootæ¹æ³è°ç¨Main.processCommandLineæ¹æ³ï¼æ¥å¤çå½ä»¤è¡åæ°ãè¿éçå½ä»¤è¡åæ°å
¶å®å°±æ¯mainæ¹æ³çargsåæ°ï¼å®ä½ä¸ºå®åä¼ éç»processCommandLineæ¹æ³ã
processCommandLineæ¹æ³ä½¿ç¨äºGNU-getoptç¨åºå
æ¥è§£æå½ä»¤è¡åæ°ï¼å¯¹ä¸åçå½ä»¤è¡åæ°æä¸åçå¤çæ¹å¼ï¼ç®åæ¦æ¬å¦ä¸ï¼
é¨ååæ°è¢«ç®åå¤çåï¼ç¨åºç´æ¥éåºãè¿äºåæ°å
æ¬ï¼
-h æ¾ç¤ºå¸®å©æ¶æ¯ã
-V æ¾ç¤ºçæ¬ä¿¡æ¯ãçæ¬ä¿¡æ¯ä»run.jarä¸çMANIFEST.MFæ件ä¸è·å¾ã
é¨ååæ°è¢«ä¿åå¨æå¡å¨å±æ§ï¼Main.propsï¼ä¸ï¼è¿äºåæ°å
æ¬ï¼
-p è¡¥ä¸ç®å½ã
-n ä»ç½ç»å¯å¨çurlã
-c æå¡å¨é
ç½®çå称ï¼é¢å®ä¹çæä¸ç§ï¼minimalãdefaultåallãå½ç¶ä¹å¯ä»¥èªå®ä¹ã
-b ææJBossæå¡ç»å®çå°åï¼å¦æéè¦ä»å
¶å®æºå¨è®¿é®JBossæå¡ï¼åå¿
é¡»é
置该åæ°ã
-g HAååºçå称
-u UDPå¤æå°å
é¨ååæ°è¢«ä¿åå¨Mainçæååéä¸ï¼è¿äºåæ°å
æ¬ï¼
-d å¯å¨è¡¥ä¸ç®å½ ä¿åå¨URL bootURLä¸
-B æ·»å å°å¯å¨ç±»è·¯å¾çé¢å¤çåº ä¿åå¨List bootLibrariesä¸
-L æ·»å å°ç±»å 载路å¾çé¢å¤çåº ä¿åå¨List extraLibrariesä¸
-C æ·»å å°ç±»å 载路å¾çé¢å¤çurl ä¿åå¨List extraClasspathä¸
é¨ååæ°è¢«ä¿åå¨ç³»ç»å±æ§ä¸ï¼è¿äºåæ°å
æ¬ï¼
-D ç³»ç»å±æ§
-P ä»ç»å®urlå è½½çå±æ§
-l æå®æ¥å¿æ件类æ§ï¼ç®åælog4jåjdk两ç§ã
processCommandLineæ¹æ³æ§è¡å®æ¯åï¼bootæ¹æ³å°å è½½ãå建并è¿è¡ä¸ä¸ªæå¡å¨å®ä¾ã
åãå 载并å建æå¡å¨å®ä¾
æå¡å¨å®ä¾æ¯ä¸ä¸ªè¿è¡æ¶å¯¹è±¡ï¼è¿ä¸ªå¯¹è±¡ä»£è¡¨äºè¿è¡ççJBossåºç¨æå¡å¨ãå¯å¨ä¸ä¸ªJBossåºç¨æå¡å¨ï¼å°±ä¼æä¸ä¸ªæå¡å¨å®ä¾ä¸
ä¹å¯¹åºãå¨JBossä¸ï¼æå¡å¨å®ä¾çå®ç°æ¯å¯ä»¥é
ç½®çï¼ä¹å°±æ¯è¯´ï¼æå¡å¨ç±»ä¸æ¯åºåçï¼èæ¯å¯ä»¥æ¿æ¢çãè¿å°±å¸¦æ¥ä¸ä¸ªé®é¢ï¼
JBosså¿
é¡»å¨å¯å¨çè¿ç¨ä¸æ索并å è½½æå¡å¨ç±»ã
æ索并å è½½æå¡å¨å®ä¾ç±»çå·¥ä½ç±ä¸ä¸ªè¾
å©ç±»å®æï¼å®çå
¨éå®ç±»åæ¯org.jboss.system.server.ServerLoaderãè¿ä¸ªç±»ä¼å建
ä¸ä¸ªç¹å®çç±»å è½½å¨ï¼å¹¶ä½¿ç¨è¿ä¸ªç±»å è½½å¨å è½½æå¡å¨ç±»ï¼ç¶åå©ç¨åå°æºå¶ï¼å建ä¸ä¸ªæå¡å¨å®ä¾ã
bootæ¹æ³é¦å
å建ä¸ä¸ªServerLoaderå®ä¾ï¼æ们æå®ç§°ä¸ºloaderï¼ç¶åbootæ¹æ³å°ä¸äºurlæ·»å å°loaderä¸ãæ们æè¿äºurl称为
æå¡å¨æ索路å¾ãloaderå°±æ¯å¨æå¡å¨æ索路å¾ä¸æç´¢æå¡å¨ç±»ãæå¡å¨æ索路å¾å
æ¬ï¼
bootURL ç±-dåæ°æä¾ãå¦æbootURLæ¯æ件ç®å½ï¼åå
¶ä¸çjarçurlä¹è¢«æ·»å ã
bootLibraries ç±-Båæ°æä¾ã
Endorsed jars ä½äºC:/JBoss/lib/endorsedä¸çææjarå
ã
jmxLibs C:/JBoss/lib/jboss-jmx.jarã
concurrentLib C:/JBoss/lib/concurrent.jarã
extraLibraries ç±-Låæ°æä¾ã
extraClasspath ç±-Cåæ°æä¾ã
loaderèªå¸¦çurl log4j-boot.jarãjboss-common.jarãjboss-system.jarãjboss-xml-binding.jarã
æ·»å å®æå¡å¨æ索路å¾åï¼bootæ¹æ³è°ç¨äºloaderçloadæ¹æ³ãloadæ¹æ³ä»¥æå¡å¨æ索路å¾ä½ä¸ºåæ°ï¼å建ä¸ä¸ªç±»å è½½å¨ï¼å¹¶ä½¿ç¨
å®æç´¢åå è½½æå¡å¨ç±»ãå¦ææåå è½½ï¼å°±å©ç¨æ¾å°æºå¶ï¼å建ä¸ä¸ªæå¡å¨å®ä¾ï¼æ们æå®ç§°ä¸ºserverã
é»è®¤çæå¡å¨ç±»æ¯org.jboss.system.server.ServerImplï¼å®ä½äºC:/JBoss/lib/jboss-system.jarä¸ï¼å¹¶ä¸å¨jbossç类路å¾
ä¸ãå æ¤ï¼loaderå¿
é¡»å建èªå·±çç±»å è½½å¨ï¼ä½¿ç¨æå¡å¨æ索路å¾ä½ä¸ºç±»æ索路å¾ï¼æè½å¤æ¾å°ServerImplãéè¿è®¾ç½®
jboss.server.typeç³»ç»å±æ§ï¼ä¹å¯ä»¥ä½¿ç¨èªå®ä¹çæå¡å¨ç±»ãå½ç¶ï¼åææ¯è¦ä¿è¯èªå®ä¹çæå¡å¨ç±»çç±»æ件è¦å¨æå¡å¨æ索路
å¾ä¸ã
æå¡å¨å®ä¾å建å®æ¯åï¼è¿éè¦å¯¹å®è¿è¡é
ç½®ï¼è¿å°±æ¯ä¸é¢çåå§åå·¥ä½ã
äºãåå§åæå¡å¨å®ä¾
åå§åæå¡å¨å®ä¾ç主è¦å·¥ä½å°±æ¯å°æå¡å¨é
置信æ¯å°è£
å°ä¸ä¸ªå¯¹è±¡ä¸ãè¿ä¸ªå¯¹è±¡æ¯ç±»
org.jboss.system.server.ServerConfigImplçå®ä¾ãå®å
æ¬äºæå¡å¨å®ä¾çåºæ¬é
置信æ¯ï¼ä¾å¦JBossçå®è£
è·¯å¾ãæå¡å¨çæ ¹
ç®å½ãæå¡å¨çæ¥å¿ç®å½ãæå¡å¨ç临æ¶ç®å½ãæå¡å¨çåºè·¯å¾çã
bootæ¹æ³è°ç¨serverçinitæ¹æ³ï¼å¼å§åå§åå·¥ä½ãInitæ¹æ³å°åå§åå·¥ä½å§æ´¾ç»server..doInitæ¹æ³ãdoInitæ¹æ³å建并é
ç½®ServerConfigImpl对象ï¼å¹¶å¨æåå¨æ§å¶å°åæ¥å¿ä¸æå°åºæå¡å¨çé
置信æ¯ã
ServerConfigImpl对象æ¯ä¸ä¸ªMBeanï¼å æ¤ï¼ç¨æ·å¯ä»¥å©ç¨jmxæ§å¶å°æ¥çæå¡å¨å®ä¾çé
置信æ¯ã
åå§åå®æ¯åï¼å°±è¦å¯å¨æå¡å¨å®ä¾äºã
å
ãå¯å¨æå¡å¨å®ä¾
å¯å¨æå¡å¨å®ä¾æ¯ä¸ä¸ªå¤æçè¿ç¨ï¼å
¶ä¸æå¾å¤çå·¥ä½éè¦å®æãåé¢å·²ç»æå°ï¼JBossæ¯åºäºJMXæ¡æ¶çï¼JBossç主è¦åè½é½æ¯
以MBeançå½¢å¼ä½ä¸ºæå¡æä¾çï¼æå¡ä¹é´å©ç¨JMXæ»çº¿è¿è¡éä¿¡ãç´å°ç®å为æ¢ï¼æ们è¿æ²¡æçå°JMXç¸å
³çå·¥ä½ãå æ¤ï¼å¨æå¡
å¨å®ä¾çå¯å¨è¿ç¨ä¸ï¼é¦è¦çå·¥ä½å°±æ¯è¦æ建JMXæ¡æ¶ãJMXæ¡æ¶æ建å®æ¯åï¼JBosséè¦å建å 个åºæ¬çæå¡ï¼è¿äºæå¡æ£æ¯ä»¥
MBeançå½¢å¼ï¼æå¨JMXæ¡æ¶ä¸ãä¹åï¼JBosså¼å§äºé¨ç½²è¿ç¨ãJBossé¢é
ç½®çæå¡ãç¨æ·çé¨ç½²åå
é½å¨è¿ä¸ªé¶æ®µè¢«é¨ç½²ãå¯å¨ã
bootæ¹æ³è°ç¨server.startæ¹æ³ï¼å¼å§äºå¯å¨è¿ç¨ãstartæ¹æ³å°å¯å¨å·¥ä½å§æ´¾ç»äºserver.doStartæ¹æ³ãdoStartæ¹æ³ä¾æ¬¡å®æ以
ä¸å·¥ä½ï¼
1.å建并å¯å¨è®¡æ¶å¨
è¿ä¸ªè®¡æ¶å¨æ¯ç¨æ¥è®¡ç®JBosså¯å¨çæ¶é´ï¼JBosså¯å¨æååï¼ä¼å¨æ§å¶å°è¾åºå¯å¨è¿ç¨æèçæ¶é´ï¼èåçç§å¯å°±å¨è¿éãï¼è¿ä¸ª
æ å
³ç´§è¦ï¼ä¸ºäºå®æ´æ§ä»ç»ä¸ä¸ï¼ã
2.å建MBeanServerå®ä¾
MBeanServeræ¯JMXæ¡æ¶çæ ¸å¿ãJBosséè¦å建ä¸ä¸ªMBeanServerå®ä¾ãï¼MBeanServerçå®ç°ä¹æ¯å¯ä»¥é
ç½®çãç®åå¯ä»¥
使ç¨ä¸¤ç§MBeanServerï¼ä¸ç§æ¯jvm platform MBeanServerï¼å®æ¯Javaå¹³å°æä¾çï¼å¦ä¸ç§æ¯JBossæä¾çï¼å
¨éå®ç±»å为
org.jboss.mx.server.MBeanServerImplãéè¿è®¾ç½®javax.management.builder.initialç³»ç»å±æ§ï¼ä¹å¯ä»¥ä½¿ç¨èªå®ä¹
MBeanServerãé£ä¹JBoss究ç«ä½¿ç¨çæ¯åªç§å®ç°å¢ï¼å¦æJavaçæ¬è¾¾å°æé«äº5.0ï¼ä¸jboss.platform.mbeanserverç³»ç»å±
为trueï¼å使ç¨jvm platform MBeanServerï¼å¦åé½ä½¿ç¨JBossæä¾çMBeanServerImplãï¼è¿ä¸ç¹è¯´å¾å¹¶ä¸åç¡®ï¼æ¶å
LazyMBeanServerï¼æè¿ä¸å¤ªæ¸
é¤ã大家å¯ä»¥è®¤ä¸ºï¼ç»å¤§é¨åæ
åµä¸ï¼é½æ¯ç¨JBossæä¾çMBeanServerImplï¼ã
3. å建并注ååºç¡æå¡
å¨å建MBeanServerImplçè¿ç¨ä¸ï¼ä¼å建以ä¸3个MBeanï¼
第ä¸ä¸ªMBeanæ¯javax.management.MBeanServerDelegate, ObjectName=JMImplementation:type=MBeanServerDelegate
第äºä¸ªMBeanæ¯ä¸ä¸ªå¨æMBeanï¼org.jboss.mx.modelmbean.XMBean,ObjectName=JMImplementation:type=MBeanRegistry
第ä¸ä¸ªMBeanæ¯org.jboss.mx.loading.UnifiedLoaderRepository3,
ObjectName=JMImplementation:service=LoaderRepository, name=Default
第ä¸ä¸ªMBeanæ¯å¨è°ç¨MBeanServerImplä¹åå建çï¼åé¢ä¸¤ä¸ªMBeanå®å¨MBeanServerImplçæé å½æ°ä¸å建çã第äºä¸ªMBeanæ¯ç¨æ¥MBeanServerç注å表ï¼æææå¨MBeanServerä¸çMBeané½è¢«æ³¨åå°æ³¨å表ä¸ã第ä¸ä¸ªMBeanä¸JBossçç±»å è½½æ¶ææå
³ï¼ä¹æ¯åºç¡æå¡ä¹ä¸ã
æå¡å¨serveråServerConfigImplä¹é½æ¯MBeanï¼ä¹é½è¢«æ³¨åå°MBeanServerï¼ObjectNameåå«ä¸ºjboss.system:type=Serveråjboss.system:type=ServerConfigã
ç¶åï¼doStartæ¹æ³å建并注å以ä¸3个MBeanï¼
第ä¸ä¸ªMBeanæ¯org.jboss.system.server.ServerInfoï¼
ObjectName= jboss.system:type=ServerInfo
第äºä¸ªMBeanæ¯org.jboss.system.ServiceControllerï¼
ObjectName= jboss.system:service=ServiceController
第ä¸ä¸ªMBeanæ¯org.jboss.deployment.MainDeployerï¼
ObjectName= jboss.system:service=MainDeployer
第ä¸ä¸ªMBean主è¦å°è£
äºJBossè¿è¡ç软硬件平å°çä¿¡æ¯ï¼å
æ¬ä¸»æºå°åãJæä½ç³»ç»çæ¬ãJavaçæ¬çã
第äºä¸ªMBeanæ¯ç¨æ¥æ§å¶MBeanççå½å¨æãJMXè§è没æè§å®
温馨提示:答案为网友推荐,仅供参考