JMX与Play 2.XX框架

时间:2014-07-14 15:36:53

标签: scala playframework playframework-2.0 jmx

我正在使用Play Framework(Scala)构建我的应用程序,需要通过JMX公开一些内部管理工具。 在Play Framework中使用JMX Mbeans的建议或最佳方法是什么? 我不使用Spring。

1 个答案:

答案 0 :(得分:2)

您可以定义global settings object并在那里注册您的MBean。最小的例子:

trait SampleMBean {
  def greetings: String
}

class Sample extends SampleMBean {
  override def greetings = "Hello!"
}

object Global extends GlobalSettings {

  lazy val mbeanServer: MBeanServer = ManagementFactory.getPlatformMBeanServer()

  override def onStart(app: Application): Unit = {
    mbeanServer.registerMBean(new Sample, new ObjectName("com.example:type=Sample"))
  }

  override def onStop(app: Application): Unit = {
    mbeanServer.unregisterMBean(new ObjectName("com.example:type=Sample"))
  }

}

请注意,在第一次向服务器发出请求后,如果它在 DEV 模式下运行,则会调用onStart