Jboss 启动类(扩展ServiceMBean)与启动servlet上的加载

Jboss 启动类(扩展ServiceMBean)与启动servlet上的加载,jboss,Jboss,我是jboss新手,想知道web.xml中ServiceMBean和load-on-startup servlet标记之间的区别是什么?另外,我想知道哪一个总是先加载还是同时加载?在什么情况下,我应该使用MBean,什么时候应该使用StartupServlet,还是不重要 我需要编写一个类/servlet来验证是否设置了所有必需的系统属性(例如-DINSTALL_DIR=blah)。如果没有,那就到此为止。否则继续并启动应用程序 提前谢谢 -服务MBean是JMX,它是JVM的一部分。web.x

我是jboss新手,想知道web.xml中ServiceMBean和load-on-startup servlet标记之间的区别是什么?另外,我想知道哪一个总是先加载还是同时加载?在什么情况下,我应该使用MBean,什么时候应该使用StartupServlet,还是不重要

我需要编写一个类/servlet来验证是否设置了所有必需的系统属性(例如-DINSTALL_DIR=blah)。如果没有,那就到此为止。否则继续并启动应用程序

提前谢谢


-服务MBean是JMX,它是JVM的一部分。web.xml中启动时加载servlet标记是J2EE应用程序的一部分

JMX是从JDK1.5开始的J2SE的一部分。因此,每个JVM可以有一个ServiceMBean。不是每个应用程序。JMX主要用于监视和管理JVM。它提供对以下信息的访问:加载的类数和运行的线程数、内存消耗、垃圾收集统计信息、按需死锁检测等。另一个常见用途是刷新缓存

JMX将允许您使用JMX容器所支持的任何管理控制台对应用程序进行测试和控制/监视。一个例子是实现引用数据缓存的web应用程序

我们以前遇到的一个问题是,由于数据库中的客户名称发生了更改,因此偶尔需要刷新缓存。如果我们在MBean接口上有一个刷新方法,那么我们应该能够使用JMX控制台触发此事件。JMX控制台可能是J2EE服务器附带的web或fat客户端。我们的J2EE服务器也可能支持SNMP。这意味着我们可以从标准Tivoli或UniCenter控制台调用该方法。

您不需要远程访问ServiceMBean来触发某些异步操作。此外,您需要验证应用程序的范围,而不是整个JVM(理论上,您可以在ServiceMBean中处理这个问题)。因此,更自然的做法是,在web.xml中作为启动时加载servlet标记。这样,应用程序的每次启动都会进行验证

还有一个澄清:ServiceMBean是JBoss编写JMX的方式。所有MBean都是服务器范围(而不是应用程序范围)。这就是我在上面自由使用MBean和ServiceMBean的原因