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