【问题标题】:Meaning of name attribute in JBoss MBean xml descriptorJBoss MBean xml描述符中name属性的含义
【发布时间】:2014-10-08 05:59:34
【问题描述】:

诸如 NamingAlias 之类的 JBoss 4/5 MBean 在 XML 中定义如下

<mbean code="org.jboss.naming.NamingAlias" name=":service=NamingAlias,fromName=queue/original">
    <attribute name="ToName">queue/linked</attribute>
    <attribute name="FromName">queue/original</attribute>
</mbean>

注意属性name=":service=NamingAlias,fromName=queue/original我看到参数servicefromName

按照说明在此处创建自定义 MBean:

https://developer.jboss.org/wiki/ExampleHelloWorldService

创建的 MBean 的 XML 配置是

<server>
  <mbean code="com.acme.HelloWorldService" name="acme.com:service=HelloWorld">
    <attribute name="Message">Hello World</attribute>
  </mbean>
</server>

我注意到在 name 属性中只指定了 service

所有 bean 都必须提供服务吗?添加额外的参数(例如 fromName)呢?这些值可以在实现 MBean 的类中使用还是强制使用?

【问题讨论】:

    标签: jboss jmx mbeans


    【解决方案1】:

    name 属性可以是任何有效(且唯一)的 JMX ObjectName。除了对开发者的主观意义外,键和值本身没有任何特殊意义。

    在第一个示例中,ObjectName 没有指定域(冒号左侧的值),因此 MBeanServer 假定默认域,在本例中为 jboss,因此在概念上:

    :service=NamingAlias,fromName=queue/original  ==  jboss:service=NamingAlias,fromName=queue/original
    

    ObjectName(以及它的嵌入域和键/值)可以在类中使用。在标准 JMX 中,通常会使 impl 实现 MBeanRegistration,它在注册 bean 时注入 MBeanServer 和 ObjectName。但是,您引用的示例是专门的 JBoss ServiceMBean,它会自动执行此操作,并且您的实现会将 ObjectName 存储在名为 serviceName 的字段中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多