概述 (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>