JBoss 4/5 MBean(如NamingAlias)在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
我看到参数service
和fromName
。
按照以下说明创建自定义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的类中使用,或者是那些强制使用的值?
答案 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 的字段中。