JMXAccessorGetTask: 获取属性值的 Ant 任务 - tomcat教程 - 极悦

Tomcat教程

全部教程

×

JMXAccessorGetTask: 获取属性值的 Ant 任务

属性列表

属性

描述

默认值

name

完全限定的 JMX ObjectName——Catalina:type=Server

-

attribute

已有的 MBean 属性(参看上文介绍的 Tomcat MBean 描述)

-

ref

JMX 连接引用

jmx.server

echo

Echo 命令用途(访问与结果)

false

resultproperty

在该项目属性中保存结果

-

delimiter

用分隔符(java.util.StringTokenizier)分隔结果,使用 resultproperty 作为前缀来保存令牌

-

separatearrayresults

返回值为数组时,将结果保存为属性列表($resultproperty.[0..N] 和 $resultproperty.length)

true

从默认的 JMX 连接中获取远程 MBean 属性:

  <jmx:get
    name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
    attribute="maxActiveSessions"
    resultproperty="servlets-examples.maxActiveSessions"
  />

获取结果数组,并将其分隔成独立的一些属性:

<jmx:get
      name="Catalina:type=ClusterSender,host=localhost"
      attribute="senderObjectNames"
      resultproperty="senderObjectNames"
  />

访问 senderObjectNames 属性:

  ${senderObjectNames.length} give the number of returned sender list.
  ${senderObjectNames.[0..N]} found all sender object names

获取连接的 IDataSender 属性(只有在配置了集群时)。

注意:这里为了可读性,将 name 属性加以包装。代码应该位于同一行中,并且不含有空格。

<jmx:query
    failonerror="false"
    name="Catalina:type=Cluster,host=${tomcat.application.host}"
    resultproperty="cluster"
  />
  <jmx:get
    name="Catalina:type=IDataSender,host=${tomcat.application.host},
senderAddress=${cluster.backup.address},senderPort=${cluster.backup.port}"
    attribute="connected"
    resultproperty="datasender.connected"
    if="cluster.0.name" />