如何使用 jolokia 检索类的 mbean

neo*_*hit 4 java logging jmx jolokia

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

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

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

Gas*_*rdP 6

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

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

http://yourserver/jolokia/read/foo.bar.Log4j:*
Run Code Online (Sandbox Code Playgroud)

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

http://yourserver/jolokia/list
Run Code Online (Sandbox Code Playgroud)

您应该最终得到一个包含您可能想要获取的所有内容的大型 json 文档。你会看到类似的东西

"foo.bar.Log4j": {
  "name=foo,type=MyLogger": {
    "desc": ...
    "attr": {
        ...
}}}
Run Code Online (Sandbox Code Playgroud)

您现在可以使用以下内容获取属性:

http://yourserver/jolokia/read/foo.bar.Log4j:type=name=foo,type=MyLogger
Run Code Online (Sandbox Code Playgroud)

除了typeand 之外name,您还可能会看到其他字段,例如contextid。这个 a:b 键是您的 mbean的 Java ObjectName