1.对于Weblogic,网上的文档比较多,得到RemoteMbeanServer,就可以创建注册MBean了.
Properties p = new Properties();
p.put("java.naming.provider.url", "t3://127.0.0.1:7001");
p.put("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory"); InitialContext ctx = new InitialContext(p);
weblogic.management.MBeanHome home =(weblogic.management.MBeanHome) ctx.lookup(
weblogic.management.MBeanHome.ADMIN_JNDI_NAME);
weblogic.management.RemoteMBeanServer mbeanServer = home.getMBeanServer();
2.对于JBoss,需要RMIConnectorImpl.
Properties p = new Properties();
p.put("java.naming.provider.url", "jnp://127.0.0.1:1099");
p.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
p.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ic = new InitialContext(p);
RMIAdaptor rmiAdaptor = (RMIAdaptor) ic.lookup("jmx/rmi/RMIAdaptor");
RMIConnectorImpl mbeanServer = new RMIConnectorImpl(rmiAdaptor);
3.对于Websphere,webshpere没有把MBeanServer接口暴露出来,但它可以通过控制台,或者脚本,先把MBean创建并注册到容器中,was提供了客户端的API AdminClient来操作该MBean.
Properties props = new Properties();
props.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
props.setProperty(AdminClient.CONNECTOR_PORT, "2809");
props.setProperty(AdminClient.CONNECTOR_TYPE,
AdminClient.CONNECTOR_TYPE_RMI);
props.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED,
"true");
props.setProperty(AdminClient.USERNAME, "test");
props.setProperty(AdminClient.PASSWORD, "user4test");
AdminClient client = AdminClientFactory.createAdminClient(props);