import javax.management.remote.JMXServiceURL;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import java.util.Hashtable;
public class myJMXConnection{
private static String HOST = "HOST";
private static String PORT = "PORT"; //usually it's 1099
private static String BEAN_NAME = "BEAN_NAME"; //com.groglogs.myclass:type=MyObject
private static String BEAN_OP = "BEAN_OPERATION";
private static String USER = "USERNAME";
private static String PASS = "PASSWORD";
public static void main(String[] args) throws Exception{
try{
JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + HOST + ":" + PORT+"/jmxrmi");
//only if authentication is required
Hashtable<String, String[]> env = new Hashtable<String, String[]>();
String[] credentials = new String[] {USER,PASS};
env.put(JMXConnector.CREDENTIALS, credentials);
JMXConnector connector = JMXConnectorFactory.connect(target, env);
//if not required, use simply JMXConnector connector = JMXConnectorFactory.connect(target);
MBeanServerConnection remote = connector.getMBeanServerConnection();
ObjectName bean = new ObjectName(BEAN_NAME);
remote.invoke(bean, BEAN_OP, null, null);//invoke the remote method. Ensure first that the user calling this method has the necessary rights to invoke it!
connector.close();
}catch(Exception e){
System.out.println(e.getMessage());
System.exit(0);
}
}
}
An important thing to note, is to always remember to check first if the user calling the method has the required permissions to invoke it