远程连接到JBoss 7.1.1 MBean

时间:2016-02-10 11:08:52

标签: java jboss remote-access jmx jconsole

在我们的项目中实现MBean(在独立模式下部署在JBoss AS 7.1.1上)之后,我使用JConsole执行了一些测试并创建了一个“本地进程”连接(使用JBoss PID的连接)和这工作得很好。可以看到,到达MBean并返回预期值。但是我无法使用“远程进程”进行连接。

JConsole new connection screen

这是JMX子系统配置:

    <subsystem xmlns="urn:jboss:domain:jmx:1.1">
        <show-model value="true"/>
        <remoting-connector use-management-endpoint="true"/>
    </subsystem>

这是套接字配置:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9995}"/>
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
    <socket-binding name="ajp" port="8009"/>
    <socket-binding name="http" port="8080"/>
    <socket-binding name="https" port="8443"/>
    <socket-binding name="osgi-http" interface="management" port="8090"/>
    <socket-binding name="remoting" port="4447"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

我找到了几个品味用于在那里使用的URL,但我已经尝试使用不同的建议端口(9990,9995,1090,4447)但没有成功:

  • 服务:JMX:远程-JMX://127.0.0.1:9995
  • 服务:JMX:RMI:/// JNDI / RMI://127.0.0.1:9995 / jmxrmi

该错误并未带来太多信息,并说“与...的连接未成功”

我根据此处的信息配置了我的JBoss:

我认为我有正确的JBoss 7.1.1配置,然后端口应该是'管理原生'(9995),但这里必须有一些东西缺失。有谁知道会是什么?

非常感谢提前!

1 个答案:

答案 0 :(得分:2)

使用您的端口配置,服务:jmx:remoting-jmx://127.0.0.1:9995 网址适用于我,包括:

  1. 使用&lt; jboss-home&gt; /bin/jconsole.sh(或bat)启动jconsole。这包括所需的类路径。
  2. 确保正确设置了 JBOSS_HOME env var。我运行了几个不同版本并被此烧毁。
  3. 您需要使用有效的管理用户和密码。不使用这些凭据(或无效的凭据)会为您提供相同的非显而易见的错误消息。
  4. 因此,当使用 remoting-jmx 时,目标端口应该是&lt; socket-binding name =&#34; management-native&#34;中定义的端口。接口=&#34;管理&#34;端口=&#34; $ {jboss.management.native.port:9995}&#34; /&GT;

    据我了解,当使用 http-remoting-jmx 时,目标端口应该是&lt; socket-binding name =&#34; management-http&#中定义的端口34;接口=&#34;管理&#34; port =&#34; $ {jboss.management.http.port:9990}&#34; /&gt; 但我从未能够让它工作。

    我没有完全销售这些新协议,所以我经常部署一个JMXMP ConnectionServer ....问题解决了。