我在程序中加了几个Mbean想通过jconsole调用。使用JMXConnectorServerFactory生成JMXConnectorServer。通过JMXServiceURL设置,将server绑定到registry。然后,我在本地用jconsole访问发现不能访问。我自己通过程序去查服务器上registry中注册的对象,发现rmiServer的stub中的endpoint使用的是外网地址。我需要通过内网地址才能访问服务器。
我想解决的方法可能有两个:
1.是否可以设置让服务器程序在生成stub的时候使用服务器内网ip?
2.修改路由器的路由设置,如果内网访问该服务器的外网地址也能路由到该机器。请高手解答,谢谢!
我想解决的方法可能有两个:
1.是否可以设置让服务器程序在生成stub的时候使用服务器内网ip?
2.修改路由器的路由设置,如果内网访问该服务器的外网地址也能路由到该机器。请高手解答,谢谢!
解决方案 »
- Java 随机访问文件操作
- 新手:一个关于图形界面的问题
- Hibernate+spring 连接多个数据库问题!在线急等!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 两个类之间是多对多关系,uml如何表达?
- help me!!!!!!!!!!!!!!!!!!!!!! help!!!!!!!!!!!!!!!!!!!!!!
- BufferedWriter的缓冲限制
- 给大家提供一段在GUI设计当中,当toolbar太长了如何自动换行的代码
- 讨论一下两个类之间的关系??
- 书上的例题为什么我运行和书上是示例图不一样。
- 做了小站,还没做完,发布之前,希望大家给点意见。
- java int 的最大值+1为什么是-2147483648
- 泛型的声明
以下是我的register 和 unregister 方法。public class BeansManager {
public static void unregister(String type, String name) {
try {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.unregisterMBean(new ObjectName("label:type=" + type + (name == null ? "" : ",name=" + name)));
} catch (Exception ex) {
// ignore;
ex.printStackTrace();
}
}
public static void register(Object object, String type, String name) {
try {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName mbeanName = new ObjectName("label:type=" + type + (name == null ? "" : ",name=" + name));
mbs.registerMBean(object, mbeanName);
} catch (Exception ex) {
// ignore;
ex.printStackTrace();
}
}
}有了MBeans的实现后,简单的调用一下就行了。[code]BeansManager.register(mbeanImpl, "MBeanSample", null);[/code]