有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JMX MBean在应用程序部署时自动注册

我需要一些关于JMX和JavaEE的指导

我知道(经过几周的研究)就部署而言,JMX规范缺失了。对于我所寻找的,很少有特定于供应商的实现,但没有一个是跨供应商的。我想自动化MBean的部署和服务器注册。我需要服务器在部署应用程序时加载和注册我的MBeand,在取消部署应用程序时删除MBeand

我的发展方向是: NetBean 6.7.1、GlassFish 2.1、JavaEE5、EJB3

更具体地说,我需要一种管理计时器服务运行的方法。我的应用程序需要运行不同的存档代理和批处理报告。我希望JMX能给我远程访问权来创建和管理计时器服务,并允许用户创建自己的时间表。如果JMX在应用程序部署时自动注册,则用户可以立即连接并管理计划。 另一方面,EJB如何连接/访问MBean

非常感谢。 加迪


共 (1) 个答案

  1. # 1 楼答案

    几年前,我在Glassfish中研究了JMX和EJB,所以我不记得所有细节。但这可能仍有帮助

    1. 玻璃鱼特定JMX。Glassfish有AMXcustom MBean可以部署。好吧,这样的bean是为了监视服务器本身,而不是与特定的应用程序进行密切的交互。这样的豆子可以持久化,而Glassfish将把它们的价值存储在不同的地方。也许你可以看看

    2. 注册和查找。可以使用MBeanPlatformMBeanServer在应用程序内随时注册MBean。参见this链接,我记不清了。您还可以查找其他JMXbean并对其调用操作。不过,查找的名称有点疯狂。当应用程序启动时,您可以注册MBean。从ServletContextListener内开始

    3. 类装入器和部署。MBean和EJB实例位于不同的Classloader。我认为您需要将带有MBean实现的.jar放在Glassfish部署目录结构中,或者通过管理控制台将其添加到类路径中的.jar列表中。您可以相对轻松地在EJB模块中注册bean,但bean无法轻松访问EJB,至少从我的经验来看是这样

    我设法使用普通的JMX从我的EJB应用程序中公开统计信息,这一点相对来说效果不错。但我不知道是否有更具交互性的东西就足够了,比如在你的例子中,你想让EJB根据配置了JMX的计时器来改变它们的行为。我担心这种方法会给你带来麻烦

    希望它能帮上忙,尽管我记得很模糊