我正在浏览Tomcat 6源代码,它在Bootstrap.java中创建了一个MBean,其中包含以下行“Catalina:type = ServerClassLoader,name =”+ common。第180行。
我无法理解为什么会这样做,是否需要创建一个MBean来管理ClassLoader。我最好的选择是,它试图管理类加载。我真的很感激任何解释它的人。
由于 贾马尔(非常感谢任何帮助。)
答案 0 :(得分:0)
我认为你最好的选择通常是正确的。 JMX MBeanServer API指定了一些操作,其中以ObjectName的形式指定类加载器,而不是直接传递一个(在远程注册的情况下不可能),因此ObjectName是间接的引用实际的类加载器。在MBeanServer中考虑这个方法:
createMBean(java.lang.String, javax.management.ObjectName, javax.management.ObjectName)
第二个ObjectName是可以从中加载String arg中指定的类的类。我发现,特别是与标准的ObjectName约定一致,发布类加载器MBean简化了其他管理任务,对于可能尝试自己扩展的其他人也是一种友好的姿态。