2011-04-11 57 views
1

环境的NetBeans 6.9.1,GlassFish的3.1,麦德龙2.1JMX MBean的不可见的部署后

我想使可用的Web服务的列表,所以我查询JMX的MBeanServer为*:type=WSEndpoint,*。问题是,部署后只有〜56 Mbeans,并且WSEndpoint豆没有注册。如果我使用JMXterm进行连接,则MBean计数将跳至〜380,并且所有的WSEndpoint bean都可见。从JConsole,我没有看到任何folder,但运行JMXterm后我做到了。

即使我调用Web服务,MBean仍未注册。 METRO监测默认启用,我就这样离开了;显示控制台消息INFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=...后显示。

JMXterm做了什么,以便所有MBean都可见?它是否会对MBeanServer进行任何方法调用?有没有解决方案,这样我可以在部署后立即访问WSEndpoint豆类?

由于提前, 丹尼尔

+0

+1只是为了让我意识到Jmxterm ;-) – 2011-04-11 11:19:03

回答

1

您可以通过在MBean amx-support:type=boot-amx上执行JMX操作bootAMX来触发所有AMX MBean的注册。

+0

谢谢,那正是我一直在寻找的!对于那些JMX新手来说,调用如下:'mBeanServer.invoke(new ObjectName(“amx-support:type = boot-amx”),“bootAMX”,new Object [0],new String [0] );'。 – 2011-04-12 14:40:50

0

同时,我发现在麦德龙用户指南答案:19.5. Notes

AMX mbean是懒洋洋地创建的。因此,如果在GlassFish中部署端点,然后使用JConsole查找Metro WSEndpoint mbeans,则有时会出现AMX mbean不显示的情况。要激活它,请启动asadmin GUI或CLI。或者使用jmxterm并发出其域命令。

在某些情况下,Metro端点mbean不会出现,直到端点收到其第一个客户端调用。

如果存根仅用于一次调用,然后立即关闭,WSClient mbean可以快速出现和消失。使用可靠消息传递或安全对话的存根通常会保持更长的活动时间,因为它很可能会用于多个呼叫。

但是,运行asadmin GUI或CLI后没有帮助,我只能通过使用JMXterm连接到JVM来解决它。