JMX监控过JBOSS服务器(取JBOSS服务器基本信息以及运行时候的性能信息) 要代码例子 JMX监控过JBOSS服务器(取JBOSS服务器基本信息以及运行时候的性能信息) 要代码例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JBoss有自带的jmx-console,您看看是不是可以。 获得JBoss中的指定的MBean下的具体的属性。/** * */package org.tuturial.common;import java.io.IOException;import java.util.Iterator;import java.util.Properties;import java.util.Set;import javax.management.InstanceNotFoundException;import javax.management.MBeanAttributeInfo;import javax.management.MBeanException;import javax.management.MBeanInfo;import javax.management.MBeanOperationInfo;import javax.management.MBeanParameterInfo;import javax.management.MBeanServerConnection;import javax.management.ObjectInstance;import javax.management.ObjectName;import javax.management.Query;import javax.management.QueryExp;import javax.management.ReflectionException;import javax.naming.InitialContext;import org.jboss.jmx.adaptor.rmi.RMIAdaptor;import org.jboss.security.SecurityAssociation;import org.jboss.security.SimplePrincipal;/** * @author Administrator * */public class MBeanInvokerOld { private MBeanServerConnection server; private ObjectName objName = null; /** * 默认构造函数 */ public MBeanInvokerOld() { } /** * * @param mbean * jboss-MBean的 * @param url * @param principal * @param credential */ public MBeanInvokerOld(String mbean, String url, String principal, String credential) { try { SecurityAssociation.setPrincipal(new SimplePrincipal(principal)); SecurityAssociation.setCredential(credential); // Get RMIAdaptor Object Properties prop = new Properties(); prop.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); prop.put(javax.naming.Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interface"); prop.put(javax.naming.Context.PROVIDER_URL, url); prop.put(javax.naming.Context.SECURITY_PRINCIPAL, principal); prop.put(javax.naming.Context.SECURITY_CREDENTIALS, credential); InitialContext iniCtx = new InitialContext(prop); Object obj = (RMIAdaptor) iniCtx.lookup("jmx/rmi/RMIAdaptor"); iniCtx.close(); // if (obj instanceof RMIAdaptor) { server = (MBeanServerConnection) obj; } objName = new ObjectName(mbean); MBeanInfo info = server.getMBeanInfo(objName); System.out.println("JNDIView Class '类名': " + info.getClassName()); MBeanOperationInfo[] opInfo = info.getOperations(); MBeanAttributeInfo[] attrInfo = info.getAttributes(); for (int i = 0; i < attrInfo.length; i++) { MBeanAttributeInfo mai = attrInfo[i]; String attrName = mai.getName(); System.out.println("开始获得属性的名称:attrName = " + attrName); } System.out.println("JNDIView Operations-->方法:"); for (int o = 0; o < opInfo.length; o++) { MBeanOperationInfo op = opInfo[o]; String returnType = op.getReturnType(); String opName = op.getName(); System.out.print(" + returnType = " + returnType + " , opName = " + opName + "("); MBeanParameterInfo[] params = op.getSignature(); for (int p = 0; p < params.length; p++) { MBeanParameterInfo paramInfo = params[p]; String pname = paramInfo.getName(); String type = paramInfo.getType(); System.out.println("pname = " + pname + ",type = " + type + "...."); if (pname.equals(type)) System.out.print("。。" + type); else System.out.print("****" + type + " " + objName); if (p < params.length - 1) System.out.println(); } System.out.println(")"); } // Get all MBeans ObjectName oo = new ObjectName("org.tuturial.mbean.hello:*"); // QueryExp exp1 = Query.eq(Query.attr("Age"),Query.value("*")); // QueryExp exp1 = (QueryExp) // Query.attr("org.tuturial.mbean.hello:service=HelloWorld","Age"); // QueryExp exp1 = Query.match("Age", "*"); Set mbSet = server.queryMBeans(oo, null); // for (Iterator it = mbSet.iterator(); it.hasNext();) { ObjectInstance oi = (ObjectInstance) it.next(); System.out.println("^^^^^^" + oi.getObjectName()); } } catch (Exception ex) { ex.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { MBeanInvokerOld proxy = new MBeanInvokerOld( "org.tuturial.mbean.hello:service=HelloWorld", "jnp://199.3.8.98:1099", "admin", "admin"); // JVM 相关信息 // proxy.call("loadData",null); // HashMap result = proxy.call("saveLocation", new HashMap()); System.out.println("---------------------------------"); String s = ""; String ss = ""; int tmpInt = 0; try { s = proxy.server.invoke(proxy.objName, "getAge", null, null) .toString(); } catch (InstanceNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MBeanException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ReflectionException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(s); }} 如何知道一个Collection<?>类型包含的元素是什么类型? 急!HQL查询问题 hibernate 为集合属性配置延迟加载时的问题,牛人进! 谁能给个hibernate二级缓存配置模板? 如何用jstl标准标签获得页面的参数值,请大家指教 如何通过URLConnection获取下载的资源的名称 请问我的Tomcat怎么装不上, 在ejb中客户端调用服务器的方法,系统是怎样通讯的呢? NTKO如何在光标处放值?大神们帮帮忙,谢谢 帅哥美女们,有没有语音播报相关的,开源库或者SDK或者第三方插件 ssh项目中事务的位置 恳求各位大侠帮我推荐几本项目经理需要看的好书!!!!
*
*/
package org.tuturial.common;import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;import javax.management.InstanceNotFoundException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanException;
import javax.management.MBeanInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.Query;
import javax.management.QueryExp;
import javax.management.ReflectionException;
import javax.naming.InitialContext;import org.jboss.jmx.adaptor.rmi.RMIAdaptor;
import org.jboss.security.SecurityAssociation;
import org.jboss.security.SimplePrincipal;/**
* @author Administrator
*
*/
public class MBeanInvokerOld {
private MBeanServerConnection server; private ObjectName objName = null; /**
* 默认构造函数
*/
public MBeanInvokerOld() {
} /**
*
* @param mbean
* jboss-MBean的
* @param url
* @param principal
* @param credential
*/
public MBeanInvokerOld(String mbean, String url, String principal,
String credential) {
try {
SecurityAssociation.setPrincipal(new SimplePrincipal(principal));
SecurityAssociation.setCredential(credential);
// Get RMIAdaptor Object
Properties prop = new Properties();
prop.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
prop.put(javax.naming.Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interface");
prop.put(javax.naming.Context.PROVIDER_URL, url);
prop.put(javax.naming.Context.SECURITY_PRINCIPAL, principal);
prop.put(javax.naming.Context.SECURITY_CREDENTIALS, credential);
InitialContext iniCtx = new InitialContext(prop);
Object obj = (RMIAdaptor) iniCtx.lookup("jmx/rmi/RMIAdaptor");
iniCtx.close();
// if (obj instanceof RMIAdaptor) {
server = (MBeanServerConnection) obj;
}
objName = new ObjectName(mbean);
MBeanInfo info = server.getMBeanInfo(objName);
System.out.println("JNDIView Class '类名': " + info.getClassName());
MBeanOperationInfo[] opInfo = info.getOperations();
MBeanAttributeInfo[] attrInfo = info.getAttributes();
for (int i = 0; i < attrInfo.length; i++) {
MBeanAttributeInfo mai = attrInfo[i];
String attrName = mai.getName(); System.out.println("开始获得属性的名称:attrName = " + attrName); }
System.out.println("JNDIView Operations-->方法:");
for (int o = 0; o < opInfo.length; o++) {
MBeanOperationInfo op = opInfo[o];
String returnType = op.getReturnType();
String opName = op.getName();
System.out.print(" + returnType = " + returnType
+ " , opName = " + opName + "(");
MBeanParameterInfo[] params = op.getSignature();
for (int p = 0; p < params.length; p++) {
MBeanParameterInfo paramInfo = params[p];
String pname = paramInfo.getName();
String type = paramInfo.getType();
System.out.println("pname = " + pname + ",type = " + type
+ "....");
if (pname.equals(type))
System.out.print("。。" + type);
else
System.out.print("****" + type + " " + objName);
if (p < params.length - 1)
System.out.println();
}
System.out.println(")");
} // Get all MBeans
ObjectName oo = new ObjectName("org.tuturial.mbean.hello:*");
// QueryExp exp1 = Query.eq(Query.attr("Age"),Query.value("*"));
// QueryExp exp1 = (QueryExp)
// Query.attr("org.tuturial.mbean.hello:service=HelloWorld","Age");
// QueryExp exp1 = Query.match("Age", "*");
Set mbSet = server.queryMBeans(oo, null); //
for (Iterator it = mbSet.iterator(); it.hasNext();) {
ObjectInstance oi = (ObjectInstance) it.next();
System.out.println("^^^^^^" + oi.getObjectName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
} /**
* @param args
*/
public static void main(String[] args) {
MBeanInvokerOld proxy = new MBeanInvokerOld(
"org.tuturial.mbean.hello:service=HelloWorld",
"jnp://199.3.8.98:1099", "admin", "admin");
// JVM 相关信息 // proxy.call("loadData",null);
// HashMap result = proxy.call("saveLocation", new HashMap());
System.out.println("---------------------------------");
String s = "";
String ss = "";
int tmpInt = 0;
try {
s = proxy.server.invoke(proxy.objName, "getAge", null, null)
.toString(); } catch (InstanceNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MBeanException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ReflectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(s); }}