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