【发布时间】:2014-07-14 15:36:52
【问题描述】:
我正在使用 Play Framework (Scala) 构建我的应用程序,并且需要通过 JMX 公开一些内部管理工具。 将 JMX Mbeans 与 Play Framework 一起使用的推荐或最佳方式是什么。 我不使用 Spring。
【问题讨论】:
标签: scala playframework playframework-2.0 jmx
我正在使用 Play Framework (Scala) 构建我的应用程序,并且需要通过 JMX 公开一些内部管理工具。 将 JMX Mbeans 与 Play Framework 一起使用的推荐或最佳方式是什么。 我不使用 Spring。
【问题讨论】:
标签: scala playframework playframework-2.0 jmx
您可以定义一个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"))
}
}
请记住,onStart 将在向服务器发出第一个请求后调用,如果它在 DEV 模式下运行。
【讨论】: