List of usage examples for javax.management.remote JMXServiceURL JMXServiceURL
public JMXServiceURL(String protocol, String host, int port) throws MalformedURLException
Constructs a JMXServiceURL
with the given protocol, host, and port.
From source file:org.nuxeo.dmk.DmkComponent.java
protected JDMKServerConnector newConnector(DmkProtocol config) { try {//from ww w .ja va 2 s. c o m String protocol = "jdmk-".concat(config.name); JMXServiceURL httpURL = new JMXServiceURL(protocol, null, config.port); JDMKServerConnector connector = (JDMKServerConnector) JMXConnectorServerFactory .newJMXConnectorServer(httpURL, null, mbs); GenericHttpConnectorServer server = (GenericHttpConnectorServer) connector.getWrapped(); server.addUserAuthenticationInfo(new AuthInfo(config.user, config.password)); ObjectName name = new ObjectName("org.nuxeo:type=jmx-connector,protocol=".concat(protocol)); mbs.registerMBean(connector, name); return connector; } catch (JMException | IOException e) { throw new RuntimeException(e); } }
From source file:org.apache.cassandra.utils.JMXServerUtils.java
/** * Creates a server programmatically. This allows us to set parameters which normally are * inaccessable.//from w w w . ja va 2 s .c om */ public static JMXConnectorServer createJMXServer(int port, boolean local) throws IOException { Map<String, Object> env = new HashMap<>(); String urlTemplate = "service:jmx:rmi://%1$s/jndi/rmi://%1$s:%2$d/jmxrmi"; InetAddress serverAddress = null; if (local) { serverAddress = InetAddress.getLoopbackAddress(); System.setProperty("java.rmi.server.hostname", serverAddress.getHostAddress()); } // Configure the RMI client & server socket factories, including SSL config. env.putAll(configureJmxSocketFactories(serverAddress, local)); // Configure authn, using a JMXAuthenticator which either wraps a set log LoginModules configured // via a JAAS configuration entry, or one which delegates to the standard file based authenticator. // Authn is disabled if com.sun.management.jmxremote.authenticate=false env.putAll(configureJmxAuthentication()); // Configure authz - if a custom proxy class is specified an instance will be returned. // If not, but a location for the standard access file is set in system properties, the // return value is null, and an entry is added to the env map detailing that location // If neither method is specified, no access control is applied MBeanServerForwarder authzProxy = configureJmxAuthorization(env); // Make sure we use our custom exporter so a full GC doesn't get scheduled every // sun.rmi.dgc.server.gcInterval millis (default is 3600000ms/1 hour) env.put(RMIExporter.EXPORTER_ATTRIBUTE, new Exporter()); String url = String.format(urlTemplate, (serverAddress != null ? serverAddress.getHostAddress() : "0.0.0.0"), port); int rmiPort = Integer.getInteger("com.sun.management.jmxremote.rmi.port", 0); JMXConnectorServer jmxServer = JMXConnectorServerFactory.newJMXConnectorServer( new JMXServiceURL("rmi", null, rmiPort), env, ManagementFactory.getPlatformMBeanServer()); // If a custom authz proxy was created, attach it to the server now. if (authzProxy != null) jmxServer.setMBeanServerForwarder(authzProxy); jmxServer.start(); // use a custom Registry to avoid having to interact with it internally using the remoting interface configureRMIRegistry(port, env); logger.info("Configured JMX server at: {}", url); return jmxServer; }