Spring アプリケーションから MBean サーバーに接続しようとしています。以下はコードです:
public void connect() throws Exception {
MBeanServerConnectionFactoryBean bean = new MBeanServerConnectionFactoryBean();
bean.setConnectOnStartup(false);
Properties environment = new Properties();
environment.put("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
environment.put("java.naming.provider.url", "rmi://117.13.128.104:9308");
environment.put("jmx.remote.jndi.rebind", "true");
bean.setEnvironment(environment);
bean.setServiceUrl("service:jmx:rmi://117.13.128.104/jndi/rmi://117.13.128.104:9308/agent/EODServer");
bean.afterPropertiesSet();
MBeanServerConnection server = (MBeanServerConnection)bean.getObject();
System.out.println("test"); // After bean.getObject() - Debug pointer on this line.
}
デバッグ ポインターは、bean.getObject() メソッド呼び出しの後に設定されます。
上記のコードをデバッグすると、MBeanServerConnection サーバーの値を下回っています。
メソッドの呼び出し中に com.sun.jdi.InvocationException が発生しました。
MBeanServerConnectionFactoryBean の Environment と ServiceUrl の値が正しく設定されているのに、なぜ MBean サーバーに接続しないのでしょうか?