package jp.gr.java_conf.skrb.game.trivia.mclient; import java.io.IOException; import java.net.MalformedURLException; import javax.management.MBeanServerConnection; import javax.management.MBeanServerInvocationHandler; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import jp.gr.java_conf.skrb.game.trivia.mserver.TriviaMBeanStarter; import jp.gr.java_conf.skrb.game.trivia.mserver.TriviaServerStandardMBean; public class TriviaMBeanRemoteTest5 { public static final String TRIVIA_SERVER_ADDRESS = "service:jmx:rmi:///jndi/rmi://localhost/trivia"; private MBeanServerConnection connection; private ObjectName triviaName; public TriviaMBeanRemoteTest5() { try { JMXServiceURL url = new JMXServiceURL(TRIVIA_SERVER_ADDRESS); JMXConnector connector = JMXConnectorFactory.connect(url, null); connection = connector.getMBeanServerConnection(); triviaName = new ObjectName(TriviaMBeanStarter.TRIVIA_STANDARD_MBEAN_NAME); accessMBeanThroughProxy(); } catch (MalformedObjectNameException ex) { ex.printStackTrace(); } catch (MalformedURLException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } private void accessMBeanThroughProxy() { TriviaServerStandardMBean proxy = (TriviaServerStandardMBean)MBeanServerInvocationHandler.newProxyInstance( connection, triviaName, TriviaServerStandardMBean.class, false); System.out.println("TotalCount = " + proxy.getTotalCount()); System.out.println("Invoke Reset"); proxy.reset(); } public static void main(String[] args) { new TriviaMBeanRemoteTest5(); } }