西安建设厅网站首页,门户网站做seo,wordpress 企业 下载地址,网店装修定制我想从Ant任务中调用JMX操作。 但是#xff0c;找到可用的蚂蚁任务库及其用法非常棘手。 因此#xff0c;让我分享我的经验#xff0c;使他人更轻松。 JMX操作的Ant任务 我决定遵循Tomcat文档并使用与tomcat一起分发的ant任务。 仅作记录用途#xff0c;并不限于Tomcat部… 我想从Ant任务中调用JMX操作。 但是找到可用的蚂蚁任务库及其用法非常棘手。 因此让我分享我的经验使他人更轻松。 JMX操作的Ant任务 我决定遵循Tomcat文档并使用与tomcat一起分发的ant任务。 仅作记录用途并不限于Tomcat部署的JMX mBean 。 对我来说它适用于通过远程连接通过JConsole访问的Java进程。 检索图书馆 当我想获取最新版本时我使用了maven中央存储库“按类名搜索”功能并搜索 org.apache.catalina.ant.jmx.JMXAccessorTask 请参阅查询 之后我去了tomcat 8 jar文件 称为tomcat-catalina-ant-8.0.8.jar 并将最新的可用版本复制到我的$ANT_HOME/lib目录中。 用法 我没有机会或动机检查所有可用任务可以在压缩文件中查看可用任务的完整列表 org/apache/catalina/ant/jmx/antlib.xml 其中包含以下内容为了我 typedefnameopenclassnameorg.apache.catalina.ant.jmx.JMXAccessorTask /
typedefnamesetclassnameorg.apache.catalina.ant.jmx.JMXAccessorSetTask /
typedefnamegetclassnameorg.apache.catalina.ant.jmx.JMXAccessorGetTask /
typedefnameinvokeclassnameorg.apache.catalina.ant.jmx.JMXAccessorInvokeTask /
typedefnamequeryclassnameorg.apache.catalina.ant.jmx.JMXAccessorQueryTask /
typedefnamecreateclassnameorg.apache.catalina.ant.jmx.JMXAccessorCreateTask /
typedefnameunregisterclassnameorg.apache.catalina.ant.jmx.JMXAccessorUnregisterTask /
typedefnameequalsclassnameorg.apache.catalina.ant.jmx.JMXAccessorEqualsCondition /
typedefnameconditionclassnameorg.apache.catalina.ant.jmx.JMXAccessorCondition / 其中我尝试了以下方法 org.apache.catalina.ant.jmx.JMXAccessorTask
org.apache.catalina.ant.jmx.JMXAccessorInvokeTask
org.apache.catalina.ant.jmx.JMXAccessorQueryTask 出于演示目的我使用了Glassfish 4.0。 示例列出JMX MBean 假设我们要按名称检索MBean即 java.lang:typeMemory 。 请注意访问不需要输入用户名和密码否则应通过相应的属性指定。 这里值得注意的是resultproperty 它可以保存我们可以从中获得名称的数组。 因此在ant构建脚本中 typedef namejmxQueryclassnameorg.apache.catalina.ant.jmx.JMXAccessorQueryTask /jmxQueryhostlocalhostport8686echotruenamejava.lang:typeMemoryresultpropertymemory /echoRetrieved MBeans count: ${memory.Length}/echo
echoThe 1.st one has name: ${memory.0.Name}/echo 结果对我来说如下输出 [jmxQuery] memory.Length1[jmxQuery] memory.0.Namejava.lang:typeMemory[echo] Retrieved MBeans count: 1[echo] The 1.st one has name: java.lang:typeMemory示例通过JMX调用操作 这是所需的两步方法 之后通过JMX连接到远程服务器 在特定的MBean上调用操作。 出于演示目的假设我们要调用垃圾回收通过在名为 java.lang:typeMemory MBean上调用操作 gc() 样本ant构建文件块完成了该工作请注意这两个任务之间的ref属性值必须相同 typedef namejmxOpenclassnameorg.apache.catalina.ant.jmx.JMXAccessorTask /typedef namejmxInvokeclassnameorg.apache.catalina.ant.jmx.JMXAccessorInvokeTask /jmxOpenhostlocalhostport8686refglassfishfailOnErrortrue /jmxInvokenamejava.lang:typeMemoryoperationgcechotruedelimiter failOnErrortruerefglassfish /更多的信息 有关更多详细信息我建议阅读Tomcat官方文档以及Javadocs 。 翻译自: https://www.javacodegeeks.com/2014/06/apache-ant-tasks-for-jmx-access.html