Java 无法从tomcat mbean连接远程jmx服务器
对我的环境: -Java 1.5 -Tomcat 5.5 我正在尝试从运行在不同机器上的web应用程序实例访问远程MBean,以实现某些群集目的。通常,我尝试使用包装在某种jmx服务器类中的rmi存根从mbean本身访问oher远程mbean,如下所示:Java 无法从tomcat mbean连接远程jmx服务器,java,tomcat,jmx,Java,Tomcat,Jmx,对我的环境: -Java 1.5 -Tomcat 5.5 我正在尝试从运行在不同机器上的web应用程序实例访问远程MBean,以实现某些群集目的。通常,我尝试使用包装在某种jmx服务器类中的rmi存根从mbean本身访问oher远程mbean,如下所示: public class JMXConnect { PrintStream out= null; JMXServiceURL target= null; JMXConnector connector= nul
public class JMXConnect {
PrintStream out= null;
JMXServiceURL target= null;
JMXConnector connector= null;
MBeanServerConnection remote= null;
String serviceURL = "service:jmx:rmi:///jndi/rmi://"+this.host+":"+this.port+"/jmxrmi";
target = new JMXServiceURL(serviceURL);
connector = JMXConnectorFactory.connect(target);
remote = connector.getMBeanServerConnection();
ObjectName bean = null;
bean = new ObjectName("MbeanName");
Object returnval = remote.getAttribute(bean,"TotalSessionCount");
问题是,当我尝试在tomcat上下文之外使用此代码时,它工作正常,但从tomcat中的这个mbean的wihin来看,它会导致问题:
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.NoInitialContextException: Cannot instantiate class: org.apache.naming.java.javaURLContextFactory [Root exception is java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory]
[exec]位于javax.management.remote.rmi.RMIConnector.connectRMIConnector.java:317
[exec]位于javax.management.remote.JMXConnectorFactory.connectJMXConnectorFactory.java:248
我在tomcat/common/lib/naming-factory.jar中找到了丢失的类。然而,我不知道在哪里包括这项权利,也不知道这门课是关于什么,或者我可能在这里误解了什么。所有这些的目的是,我想让我的一些MBean在使用rmi存根的不同机器上相互协作
1我如何避开这个错误?
2这种方法有用吗