📄 exportagent.java
字号:
package book.jmx.examples;
import javax.management.*;
import javax.management.modelmbean.*;
import java.rmi.*;
import java.rmi.registry.*;
public class ExportAgent {
final static String SERVER_DELEGATE =
"JMImplementation:type=MBeanServerDelegate";
final static String AGENT_ID =
"MBeanServerId";
final static String XMBEAN =
"book.jmx.examples.XMBean";
final static String[] XMBEAN_CONSTRUCTOR_SIGNATURE =
{ String.class.getName(), String.class.getName() };
public static void main(String[] args) {
try {
MBeanServer server = MBeanServerFactory.createMBeanServer();
String agentID = (String)server.getAttribute(
new ObjectName(SERVER_DELEGATE), AGENT_ID
);
ObjectName exportManager =
new ObjectName("Service:name=ExportManager");
ObjectName soapConnector =
new ObjectName("Connector:transport=SOAP");
ObjectName jmsConnector =
new ObjectName("Connector:transport=JMS");
server.createMBean(XMBEAN, soapConnector,
new Object[] {
"file:/C:/Examples/SOAPConnector.xml",
"book.jmx.examples.SOAPConnector" },
XMBEAN_CONSTRUCTOR_SIGNATURE
);
server.createMBean(XMBEAN, jmsConnector,
new Object[] {
"file:/C:/Examples/JMSConnector.xml",
"book.jmx.examples.JMSConnector" },
XMBEAN_CONSTRUCTOR_SIGNATURE
);
server.createMBean(XMBEAN, exportManager,
new Object[] {
"file:/C:/Examples/ExportManager.xml",
"book.jmx.examples.ExportManager" },
XMBEAN_CONSTRUCTOR_SIGNATURE
);
server.invoke(soapConnector, "start",
new Object[] { agentID },
new String[] { String.class.getName() }
);
server.invoke(jmsConnector, "start",
new Object[] { agentID },
new String[] { String.class.getName() }
);
server.invoke(exportManager, "start",
new Object[] { agentID },
new String[] { String.class.getName() }
);
server.invoke(exportManager, "export",
new Object[] { "MyAgent" },
new String[] { String.class.getName() }
);
RequiredModelMBean rmm = new RequiredModelMBean();
ModelMBeanInfoSupport info = new ModelMBeanInfoSupport(
RequiredModelMBean.class.getName(),
"descrption",
null,
null,
null,
null
);
rmm.setManagedResource(new Object(), "ObjectReference");
rmm.setModelMBeanInfo(info);
server.registerMBean(rmm, new ObjectName("Tst:aa=bb"));
// create the adaptor instance
com.tivoli.jmx.http_pa.Listener adaptor =
new com.tivoli.jmx.http_pa.Listener();
// register the adaptor MBean to the agent
server.registerMBean(adaptor,
new ObjectName("adaptor:protocol=HTTP"));
// start the adaptor
adaptor.startListener();
}
catch (java.io.IOException e) {
e.printStackTrace();
// com.sun.jdmk.comm.HtmlAdaptorServer adaptor =
// new com.sun.jdmk.comm.HtmlAdaptorServer();
// server.registerMBean(adaptor,
// new ObjectName("adaptor:protocol=HTTP"));
// adaptor.setPort(6000);
// adaptor.start();
}
catch (RuntimeMBeanException e) {
e.getTargetException().printStackTrace();
}
catch (MBeanRegistrationException e) {
e.getTargetException().printStackTrace();
}
catch (RuntimeErrorException e) {
e.getTargetError().printStackTrace();
}
catch (ReflectionException e) {
e.getTargetException().printStackTrace();
}
catch (MBeanException e) {
e.getTargetException().printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -