Tomcat 可以使用JMX服務進行管理操作下面介紹如何查看Tomcat提供哪些JMX服務並如何使用這些JMX服務
. 使用JDK自帶的JConsole程序查看Tomcat的JMX服務
要讓JConsole能查看到Tomcat的JMX服務需要Tomcat啟動一個管理口由於tomcat缺省啟動文件不提供JMX服務接口 加入下面紅色內容到catalinabat
set JAVA_OPTS=%JAVA_OPTS%
Dcom
sun
management
jmxremote
port=
Dcom
sun
management
jmxremote
ssl=false
Dcom
sun
management
jmxremote
authenticate=false
Djava
util
logging
manager=org
apache
juli
ClassLoaderLogManager
Djava
util
logging
config
file=
%CATALINA_BASE%conflogging
properties
啟動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