0

simplejmx用来发布我的JMX Resources.

我有jmx-config.xml

<bean id="beanPublisher" class="com.j256.simplejmx.spring.BeanPublisher">
    <property name="jmxServer" ref="jmxServer" />
</bean>

<bean id="jmxServer" class="com.j256.simplejmx.server.JmxServer"
    init-method="start" destroy-method="stop">
    <property name="registryPort" value="8123" />
</bean>

我正在启动我的JBoss应用程序,一切正常:

15:20:11,860 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] (MSC service thread 1-8) Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1be30160: defining beans [...,beanPublisher,jmxServer,...]; root of factory hierarchy

我创建了一个简单的类。

package com.mypckg.jmx;

import com.j256.simplejmx.common.JmxAttributeField;
import com.j256.simplejmx.common.JmxResource;

@JmxResource(description = "Blah1", domainName = "Blah2", beanName = "Blah3")
public class DummyJMX {

    @JmxAttributeField(description = "Blah4")
    private int var = 3;
}

我正在开始JConsole,我正在选择JBoss应用程序,我将要这样做MBeans。这就是我所看到的:

在此处输入图像描述 *

可能,我的DummyJMX课程还没有出版(或者我找不到它)。

我忘记了哪一步?

先感谢您


编辑 :

在此处输入图像描述


编辑 :

@安德烈·斯特凡

我使用您的链接时遇到的错误:

在此处输入图像描述

@灰色的

我使用的一个错误localhost:8123

在此处输入图像描述

4

3 回答 3

0

在 JConsole 中尝试以下 url,使用远程进程选项:service:jmx:rmi:///jndi/rmi://localhost:8123/jmxrmi

这与我在评论中提供的有点不同。

于 2014-04-14T07:30:53.947 回答
0

最后,我连接到我的JMX Beansusing JConsole.

可能,我在开始工作时做错了什么simplejmx

我没有改变很多东西。我保留了文件,jmx-config但我仍然使用1.8.simplejmx

我可以很容易地连接到这个 bean locally- 我不知道为什么我不能更早地做到这一点。你能告诉我,为什么在你看来它不应该是一个local process

下面,您可以看到 myJMX Bean出现在JConsole

在此处输入图像描述

于 2014-04-15T08:49:57.960 回答
0

可能,我的 DummyJMX 类尚未发布(或者我只是找不到它)。

当您使用registryPort配置时,JmxServer它不会显示在 Jconsole 下的“本地进程”列表中。它将能够作为“远程进程”访问localhost:8123。如果您使用的是 Linux 机器,您可能会使用它netstat -an | grep LISTEN来查看您的应用程序正在侦听哪些端口。如果您在列表中没有看到 8123,那么它可能已经配置了 RMI 服务器?

如果您想使用显示为本地进程的平台 mbean-server,请使用最近(4/2014)发布的 1.9 版中的新设置器或构造器。不幸的是,SimpleJMX 无法以编程方式注册自身,因此它显示在进程列表中——这不是 JVM 导出的代码。

<bean id="jmxServer" class="com.j256.simplejmx.server.JmxServer"
    init-method="start" destroy-method="stop">
    <property name="usePlatformMBeanServer" value="true" />
</bean>
于 2014-04-13T19:12:02.227 回答