如何使用 jolokia 检索 class 的 mbean

How to use jolokia to retrive mbean for a class

我有一个 class 的 mbean 说 foo.bar.Log4j 我想使用 jolokia 列出所有记录器?

我试过阅读 https://jolokia.org/reference/pdf/jolokia-reference.pdf 但它告诉我如何获取预定义 java.memory 等的值

请建议如何让 jolokia 检索用户定义的记录器 class

您必须牢记,即使您的 mbean 在您的 servlet 中是一个单例,您的 servlet 也可能在多个端点上 运行 - 这就是为什么名称空间本身不足以识别您的 mbean 实例的原因。

如果你想获取 foo.bar.Log4j 的所有实例,你可以像这样使用 read 端点:

http://yourserver/jolokia/read/foo.bar.Log4j:*

通常,您可以获得所有可用 mbean 的列表,如下所示:

http://yourserver/jolokia/list

您最终应该得到一个大型 json 文档,其中包含您可能想要获取的所有内容。你会看到像

这样的东西
"foo.bar.Log4j": {
  "name=foo,type=MyLogger": {
    "desc": ...
    "attr": {
        ...
}}}

您现在可以使用如下方式获取属性:

http://yourserver/jolokia/read/foo.bar.Log4j:type=name=foo,type=MyLogger

除了 typename,您还可以看到其他字段,例如 contextid。此 a:b 键是您的 mbean 的 Java ObjectName