package jp.gr.java_conf.skrb.game.trivia.mclient; import java.io.IOException; import java.net.MalformedURLException; import javax.management.Attribute; import javax.management.AttributeNotFoundException; import javax.management.InstanceNotFoundException; import javax.management.InvalidAttributeValueException; import javax.management.MBeanException; import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.ReflectionException; 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; public class TriviaMBeanRemoteTest3 { public static final String TRIVIA_SERVER_ADDRESS = "service:jmx:rmi:///jndi/rmi://localhost/trivia"; private MBeanServerConnection connection; private ObjectName triviaName; public TriviaMBeanRemoteTest3() { 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); setTotalCount(); try { Thread.sleep(10000L); } catch (InterruptedException ex) {} invokeReset(); } catch (MalformedObjectNameException ex) { ex.printStackTrace(); } catch (MalformedURLException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } private void invokeReset() { try { // reset オペレーションの実行 connection.invoke(triviaName, "reset", null, null); } catch (MBeanException ex) { ex.printStackTrace(); } catch (ReflectionException ex) { ex.printStackTrace(); } catch (InstanceNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } private void setTotalCount() { try { // setTotalCount の実行 Attribute attribute = new Attribute("TotalCount", 10); connection.setAttribute(triviaName, attribute); } catch (InvalidAttributeValueException ex) { ex.printStackTrace(); } catch (AttributeNotFoundException ex) { ex.printStackTrace(); } catch (MBeanException ex) { ex.printStackTrace(); } catch (ReflectionException ex) { ex.printStackTrace(); } catch (InstanceNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { new TriviaMBeanRemoteTest3(); } }