如何使用jolokia来为一个类重新检索mbean

时间:2016-08-08 21:06:30

标签: java logging jmx jolokia

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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