2

环境NetBeans 6.9.1、GlassFish 3.1、METRO 2.1

我想列出可用的 Web 服务,所以我在 JMX MBeanServer 中查询*:type=WSEndpoint,*. 问题是,部署后只有大约 56 个 Mbean,并且WSEndpoint没有注册 bean。如果我使用 JMXterm 连接,MBean 计数会上升到 ~380,并且所有WSEndpointbean 都是可见的。在 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在部署后立即访问 bean?

4

2 回答 2

2

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

于 2011-04-12T07:53:05.080 回答
0

同时,我在 METRO 用户指南:19.5 中找到了答案。笔记

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

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

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

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

于 2011-04-11T20:15:35.207 回答