我们可以通过JMX来获得web service的相关配置属性,内存使用、性能、以及部署在web service下的webapp等信息。
这在很多监控web service系统中往往都要用到。
一, JBOSS:
首先得得到RMIAdaptor,
下面是获取RMIAdaptor的方法。
private RMIAdaptor connect2Jboss(String host, int port, String userName, String password, int timeout,int retryTimes) {
RMIAdaptor mbsc = null;
for(int i=0;i<retryTimes;i++){
Properties pro = new Properties();
pro.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
pro.setProperty("java.naming.provider.url", "jnp://" + host + ":" + port);
pro.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
pro.put("jnp.timeout", String.valueOf(timeout * 1000));
pro.put("jnp.sotimeout", String.valueOf(timeout * 1000));
try {
ic = new InitialContext(pro);
mbsc = (RMIAdaptor) ic.lookup("jmx/rmi/RMIAdaptor");
return mbsc;
} catch (Exception e) {
logger.info("Host:[" + host + "] Port:[" + port + "] User:[" + userName + "] Password:[" + password + "] Timeout:[" + timeout + "] Error");
}
}
return mbsc;
}
得到RMIAdaptor后,就可以得到相关的MBean了。例如,想得到server的相关信息,它的ObjectName是:jboss.system:type=Server。
Set mbSet = rmiAdaptor.queryMBeans(new ObjectName("jboss.system:type=Server"), null);
for (Iterator it = mbSet.iterator(); it.hasNext();) {
ObjectInstance oi = (ObjectInstance) it.next();
String version = rmiAdaptor.getAttribute(oi.getObjectName(), "Version").toString();
jbossInfo.setVersion(version);
jbossInfo.setAvailable(true);
}
得到的mbSet是一系列属性Set,通过遍历就可以得到它相关的信息。
想要得到jboss下所有的web应用,就可以通过ObjectName:jboss.web.deployment:*。
mbSet = rmiAdaptor.queryMBeans(new ObjectName("jboss.web.deployment:*"), null);
相关专题
- (10次浏览)J2EE服务器安全方法
- (10次浏览)J2EE的SQL语句自动构造方法
- (7次浏览)JDBC连接各种数据库经验技巧集萃(一)
- (3次浏览)指定类加载器的小技巧
- (1次浏览)JDBC连接各种数据库经验技巧集萃(二)
- (1次浏览)J2ME中使用低级界面实现简单数字输入
- (0次浏览)J2EE如何集成DOMINO应用
- (0次浏览)J2ME中的GIF处理类
- (0次浏览)Struts与Velocity的简单集成
- (0次浏览)AspectJ 无法自动代理如何解决



