当前位置: 首页 > 知识库问答 >
问题:

JBoss 7的附加MBeanServer和JMXConnectorServer

岳承悦
2023-03-14

出于安全原因,我无法将我的MBean添加到现有的JBoss 7平台MBeanServer。所以我使用CustAuthenticator创建了自己的mBeanServer和JMXConnectorServer。

下面是我对新MBeanServer和JMXConnectorServer的Spring Bean定义。当我在Jetty中运行我的应用程序时,这段代码可以工作。我可以通过URL服务进行连接:jmx:rmi://localhost/jndi/rmi://localhost:17999/sample在jconsole中,它只显示了我所期望的自定义MBean。

但是相同的代码在JBoss 7中不起作用。当我部署到JBoss并尝试使用相同的JMX URL连接时,它会给出一个带有以下错误的对话框:“连接到myuser@service: jmx:rmi://localhost/jndi/rmi://localhost:17999/trm没有成功。您想再试一次吗?”

我在customAuthenticator中设置了一个断点,当我尝试连接JMX时,JBoss不会在断点处停止。我的JMXConnectorServer似乎没有被JBoss使用。有人能帮忙吗?注意,我无法更改现有的JBoss MBeanServer或JMX连接器服务器配置,因为它们用于其他目的。

提前谢谢。

@Bean
public Object rmiRegistry() throws Exception {
            RmiRegistryFactoryBean factory = new RmiRegistryFactoryBean();
            factory.setPort(17999);
            factory.afterPropertiesSet();
            return factory.getObject();
}

@Bean
@DependsOn("rmiRegistry")
public MBeanServer mBeanServer() {
    MBeanServerFactoryBean factory = new MBeanServerFactoryBean();
    factory.afterPropertiesSet();
    return factory.getObject();
}

@Bean
@DependsOn("rmiRegistry")
public JMXConnectorServer jmxConnectorServer() throws IOException, JMException {
    ConnectorServerFactoryBean factory = new ConnectorServerFactoryBean();
    factory.setServer(mBeanServer());
    factory.setServiceUrl("service:jmx:rmi://localhost/jndi/rmi://localhost:17999/sample");
    factory.setRegistrationPolicy(RegistrationPolicy.FAIL_ON_EXISTING);
    Map<String, Object> props = new HashMap<>();
    props.put(JMXConnectorServer.AUTHENTICATOR, customAuthenticator);
    factory.setEnvironmentMap(props);
    factory.afterPropertiesSet();

    return factory.getObject();
}

@Bean
@DependsOn("rmiRegistry")
public AnnotationMBeanExporter annotationMBeanExporter() {
    AnnotationMBeanExporter result = null;
    result = new AnnotationMBeanExporter();
    result.setServer(mBeanServer());
    return result;
}

共有1个答案

朱英范
2023-03-14

我怀疑JBoss环境正在影响JMX连接器服务器的配置方式。我会尝试额外指定服务侦听端口(例如17998),而不是通过使用以下JMXServiceURL将其作为临时端口:

service:jmx:rmi://localhost:17998/jndi/rmi://localhost:17999/sample
 类似资料:
  • 我在单独的项目中有2个文件。一个使用FileAppender将JDBC SQL记录到文件中,另一个使用ConsoleAppender将错误记录到stdout中。 下面是我对每个文件的logback.xml文件。 我已经向添加了这两个附加项,但我不确定如何处理新的中的记录器和根标记。

  • 问题内容: 我需要将事件记录到系统日志中。我使用lo4j2和syslog附加程序。我的appender阻止如下所示: 如您所见,我有一个带有特定PatternLayout的Console附加程序和RollingFile附加程序。我想对Syslog附加程序使用相同的PatternLayout。但是,系统日志中的日志消息似乎总是使用预定义的布局。我尝试执行以下操作: 但这没有任何作用。syslog消息

  • 通过学习用户和群组我们知道,群组可以让多个用户具有相同的权限,同时也可以这样理解,一个用户可以所属多个群组,并同时拥有这些群组的权限,这就引出了 初始组(有时也称 主组)和 附加组。 《 Linux etc/passwd》一节中,已经对用户所属初始组和附加组的概念进行了简单介绍,本节对初始组和附加组做更详细的介绍。 /etc/passwd 文件中每个用户信息分为 7 个字段,其中第 4 字段(GI

  • 我通过一个教程开始学习JBoss7,在现有的已知JBoss服务器设置上进行实验。教程提到 那么它们到底有什么区别呢?为什么我的JBoss7设置错过

  • 在Ruby中, 可以使用库来添加新的类,模块或方法. 下列就是标准发布包中附加库的一览表. 读取库时需要使用require或load. 附加库一览表 文本 /文件 /网络 /输入输出 /日语 /数学 /数据库 /画面控制/CUI /GUI /日期·时间 /多线程·同步 /Unix /MS Windows /正则表达式 /GC /Design Pattern /开发工具 /命令行 /其他 Engli

  • 我想为woocommerce创建一个函数,当访问者在他们的购物车中添加多个产品时,每个产品的运输成本会增加2美元。 例如,一种产品的运输成本是适用的。对于额外产品或超过1个数量,运输成本增加2美元。 我想不出解决这个问题的办法。 在此方面的任何帮助都将不胜感激。