JBoss MBean xml描述符中name属性的含义

时间:2014-10-08 05:59:34

标签: jboss jmx mbeans

JBoss 4/5 MBean(如Na​​mingAlias)在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

所有豆类都必须使用服务吗?如何添加其他参数,例如fromName?这些值是否可以在实现MBean的类中使用,或者是那些强制使用的值?

1 个答案:

答案 0 :(得分:1)

名称属性可以是任何有效(且唯一)的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 的字段中。