Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 资源
Tomcat JDBC 数据源
Tomcat 类加载机制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默认 Servlet
Tomcat 集群
Tomcat 连接器
Tomcat监控与管理
Tomcat 日志机制
Tomcat 基于 APR 的原生库
Tomcat 虚拟主机
Tomcat 高级 IO 机制
Tomcat 附加组件
Tomcat 安全性注意事项
Tomcat Windows 服务
Tomcat Windows 认证
Tomcat 的 JDBC 连接池
Tomcat WebSocket 支持
Tomcat 重写机制

JMXAccessorInvokeTask: 调用 MBean 操作的 Ant 任务

属性列表

属性

说明

默认值

 

name

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

-

 

operation

已有的 MBean 操作(funcspecs/fs-admin-opers.html

-

 

ref

JMX 连接引用

jmx.server

jmx.server

echo

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

false

 

resultproperty

在这一项目属性中保存结果

-

 

delimiter

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

-

 

separatearrayresults

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

true

 

停止应用:

<jmx:invoke
    name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
    operation="stop"/>

可以在 ${sessions.[0..N} 属性中找到 sessionid,然后利用 ${sessions.length} 属性来访问计数。

获取所有 sessionid 的范例如下:

<jmx:invoke
    name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
    operation="listSessionIds"
    resultproperty="sessions"
    delimiter=" "
  />  

现在你可以在 ${sessions.[0..N} 属性中找到 sessionid,然后利用 ${sessions.length} 属性来访问计数。

从 ${sessionid.0} 会话中获取远程 MBean 会话属性:

<jmx:invoke
    name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
    operation="getSessionAttribute"
    resultproperty="hello">
     <arg value="${sessionid.0}"/>
     <arg value="Hello" />
  </jmx:invoke>

在虚拟主机 localhost 上创建新的访问日志记录器值:

 <jmx:invoke
         name="Catalina:type=MBeanFactory"
         operation="createAccessLoggerValve"
         resultproperty="accessLoggerObjectName"
 >
     <arg value="Catalina:type=Host,host=localhost"/>
 </jmx:invoke>

现在可以利用 ${accessLoggerObjectName} 属性上存储的名称找到新的 MBean 了。