java 跑一个系统用这样的参数 vm arguments: -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false TestProcessResource package com.statestr.gcth.client.simplefunction.dao; import java.util.List; import com.statestr.gcth.application.dao.UseCaseProcessDao; import com.statestr.gcth.application.model.DefaultProcessResource; import com.statestr.gcth.core.InitializationException; import com.statestr.gcth.core.context.ContextManager; import com.statestr.gcth.core.context.FrameworkContainer; public class TestProcessResource { private static FrameworkContainer container; public static void main(String[] args) { String applicationName = "gcth"; String frameworkName = "simplefunction/simple_test"; // load from xml file System.setProperty("FAW.goldcopy.bootstrap.config.source", "xml"); // now start up the GCTH framework try { container = FrameworkContainer.create(applicationName, frameworkName); } catch (Exception e) { String error = "Failed to start framework " + applicationName + " with error:" + e.getMessage(); throw new InitializationException(error, e); } UseCaseProcessDao dao = ContextManager.getReference("useCaseProcessDao", com.statestr.gcth.application.dao.impl.UseCaseProcessDaoImpl.class); List<DefaultProcessResource> resourceList = dao.loadDefaultProcessResource("defaultRemediationPlatform"); System.out.println(resourceList.size()); } }
package com.statestr.gcth.client.simplefunction.jxm; import java.io.IOException; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java.net.MalformedURLException; import java.util.List; import java.util.Properties; import java.util.Set; import java.util.TreeSet; import javax.management.MBeanOperationInfo; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import com.sun.management.ThreadMXBean; public class JmxTest { public static void main(String[] args) throws Exception { JMXServiceURL address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi"); JMXConnector connector = JMXConnectorFactory.connect(address); MBeanServerConnection mbs = connector.getMBeanServerConnection(); ThreadMXBean threadBean = ManagementFactory.newPlatformMXBeanProxy (mbs, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); // RuntimeMXBean rmxb = ManagementFactory.newPlatformMXBeanProxy(connector // .getMBeanServerConnection(),"java.lang:type=Runtime", // RuntimeMXBean.class); // RuntimeMXBean rmxb = ManagementFactory.newPlatformMXBeanProxy(connector // .getMBeanServerConnection(),"GoldCopy:type=Framework,name=Context", // RuntimeMXBean.class); MBeanServerConnection mbsc = connector.getMBeanServerConnection(); String[] domains = mbsc.getDomains(); // for(String domain : domains){ // System.out.println(domain); // } List<String> componentList = (List<String>)mbsc.invoke(new ObjectName("GoldCopy:type=Framework,name=Context"), "queryComponentList", null, null); for(String op : componentList){ System.out.println(op); } Set<ObjectName> names = new TreeSet<ObjectName>(mbsc.queryNames(new ObjectName("GoldCopy:type=Framework,name=Context"), null)); for(ObjectName obj : names){ System.out.println(obj); } System.out.println(threadBean.getThreadCount());//线程数量 } }
启动的 参数是啥端口 ,客户端 就用啥 端口接收 , 这边是 9999