熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

使用Tomcat的jmx服務

2022-06-13   來源: Java開源技術 

  Tomcat 可以使用JMX服務進行管理操作下面介紹如何查看Tomcat提供哪些JMX服務並如何使用這些JMX服務

  . 使用JDK自帶的JConsole程序查看Tomcat的JMX服務

  要讓JConsole能查看到Tomcat的JMX服務需要Tomcat啟動一個管理口由於tomcat缺省啟動文件不提供JMX服務接口 加入下面紅色內容到catalinabat

set JAVA_OPTS=%JAVA_OPTS% Dcomsunmanagementjmxremoteport= Dcomsunmanagementjmxremotessl=false Dcomsunmanagementjmxremoteauthenticate=false Djavautilloggingmanager=orgapachejuliClassLoaderLogManager Djavautilloggingconfigfile=%CATALINA_BASE%confloggingproperties

  啟動Tomcat

  再運行jdk的jconsole程序

  d:jdkbinjconsole nnnnn(nnnn 是tomcat的進程號 用Task Manager查)

  . 調用Tomcat的JMX服務如停止啟動web應用

  寫一個JavaBean用來調用Tomcat的JMX服務關鍵方法如下

public static boolean callWebModuleMBeanMethod(String appNameString methodName) throws Exception{
MBeanServer mBeanServer = null;
 
if (MBeanServerFactoryfindMBeanServer(null)size() > ) {
mBeanServer = (MBeanServer) MBeanServerFactoryfindMBeanServer(
null)get();
} else {
throw new Exception(cannt find catalina MBeanServer);
}
 
Set names = null;
try {
names = mBeanServerqueryNames(new ObjectName(
*:jeeType=WebModulename=//localhost/+appName+*) null);
} catch (Exception e) {
throw new Exception(cannt find +appName+ web moudule mbean! cant undeploy web appn+egetMessage());
}
if(names==null || namessize()==) {
logdebug(cant find +appName+ web moudule mbean!);
return false;
}
 
ObjectName oname =null;
Iterator it = namesiterator();
if (ithasNext()) {
oname=(ObjectName) itnext();
}
 
if(oname==null)
return false;
try {
mBeanServerinvoke(onamemethodNamenullnull);
return true;
} catch (Exception e) {
throw new Exception(cant +methodName+ +appName+ web application!n+egetMessage());
}
}
 
public static void main(String[] args){
callWebModuleMBeanMethod(appstop); //停止web應用app
callWebModuleMBeanMethod(appstart); //啟動web應用app
}


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29188.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.