概述 (Overview)
在這里可以找到關于conf/jboss-service.xml的描述。我們可以對默認部署掃描器(default DeploymentScanner)做一些調整,但這些調整將會影響到Jboss應用服務的熱部署特性。在修改conf/jboss-service.xml后,需要重啟JBoss才會生效。如果你希望在JBoss運行的情況下修改并即時生效,你需要通過JMXConsole來操作。通過JMXConsole來配置部署掃描器的指南,請點擊這里。
第一步 (First steps)
使用vi或其它文本編輯器打開conf/jboss-service.xml。移動到DeploymentScanner MBean定義附近:
<!-- ==================================================================== -->
<!-- Deployment Scanning -->
<!-- ==================================================================== -->
<!-- An mbean for hot deployment/undeployment of archives.
-->
<mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
name="jboss.deployment:type=DeploymentScanner,flavor=URL">
這包含了對應部署掃描器的名稱。當然,沒有特殊理由的情況下,你不應該修改它。
部署排序器 (Deployment Sorter)
當你向下移動時,你將會看到一些注釋,在注釋的下方是:
<attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
這里的部署排序器只能是DefaultDeploymentOrder。從4.0.1開始,可以使用EnhancedSuffixOrder來獲取排列次序。如果你更愿意使用UNIX System-V的初始化格式,你在注釋掉這個排序器后,去除下面這一行上的注釋:
<attribute name="URLComparator">org.jboss.deployment.scanner.PrefixDeploymentSorter</attribute>
這個排序器將使用基于數字前綴的順序。如果你希望使用這個排序器,你應該進一步讀一下PrefixDeploymentOrder。
掃描周期 (Scan Period)
向下繼續移動,你將發現:
<attribute name="ScanPeriod">5000</attribute>
默認值是5000毫秒(5秒)。這指示了部署掃描器掃描目錄(/deploy)的頻率。將這個值設的比較大意味著當/deploy發生變化后,被發現時的時間會較長。當這個值比較小會造成不必要的CPU開銷。
URLs
繼續向下移動,你將發現:
<attribute name="URLs">
deploy/
</attribute>
正如你看到的一樣,這將是熱部署會使用到的逗號分隔的URL列表。這兒可以是HTTP服務器URLs,然后你應該使用一個啟用WebDAV特性的服務器。你可以使用不同的權限掃描多個目錄。舉例,如果你想要保護數據庫密碼你可以這樣做。
<attribute name="URLs">
deploy/,datasources/
</attribute>
你可以設置datasource/目錄的權限,如JBoss可以讀取目錄,但是開發人員卻不能。
Recursive (遞歸)
最后,應該看到:
<attribute name="RecursiveSearch">True</attribute>
這將使用部署掃描器遞歸掃描子目錄。
屏蔽熱部署 (Disable Hot Deployment)
增加以下屬性:
<attribute name="ScanEnabled">false</attribute>