正 文

基于JMX通知框架的AJAX深度开发


www.7dspace.com  更新日期:2005-12-27 7:28:33  七度空间


  四、注册MBeans和MBean听者

  在每一个J2EE服务器实例上,在服务器启动时运行两个启动类:

  ·ManagementStartup-它把UserWeb MBean注册到本地MBean服务器。Startup类参数包括警告状态的默认设置,还有MBean名称和MBean类。例如:

<StartupClass
Arguments="ServerName=admin,
MBeanName=ExampleApp:Name=UserWeb,
MBeanClass=com.grahamh.management.userWeb.UserWeb"
ClassName="com.grahamh.management.startup.ManagementStartup"
FailureIsFatal="true" Name="UserWEB" Notes=""
Targets="admin,OLTPCluster"/>

  ·MbeanRegistrations-它用管理服务器上的UserWeb MBean来注册一个Singleton POJO-ManagementListener。

  一个javax.management.NotificationFilterSupport对象被用于列举UserWeb MBean将生成和听者将接收的通知的类型:

//MbeanRegistrations.java
MBeanHelperFactory.getWebHelper().registerListener();
//UserWebMbeanListener.java
public void registerListener() throws UserWebException{
try {
 //得到听者和过滤
 ManagementListener listener = MBeanHelperFactory.getListener();
 NotificationFilterSupport filter = listener.getSupportedEvents();
 //得到admin mbean服务器;
 //用UserWeb MBean注册该听者和过滤
 RemoteMBeanServer rmbs = getAdminMbeanServer();
 rmbs.addNotificationListener("ExampleApp:Name=UserWeb", listener, filter, null);
}
catch (Exception e) {
 throw new UserWebException("Unable to registerListener: "+ e.getMessage(), e);
}
}

  该listener.getSupportedEvents()方法返回下面的过滤器(filter):

NotificationFilterSupport filter = new NotificationFilterSupport();
filter.enableType("alert.broadcast");

  当ManagementListener在服务器启动时,在(远程的)管理服务器上建立一个到MBean服务器的连接,而且(本地的) ManagementListener被注册为一个听者-听取在UserWeb MBean上生成的事件,并且有一个过滤器被设置为"alert.broadcast"事件类型。

  因为该 ManagementListener实现Weblogic.management.RemoteNotificationListener,所以它可以得到在本地JVM或一远程JVM上生成的JMX通知;在本文中,是指在远程管理服务器JVM上生成的JMX通知。

7页,页码:[1] [2] [3] [4] [5] [6] [7] 

上一篇:使用AJAX技术开发新一代Web应用程序
下一篇:Spring Framework中的AOP编程之入门篇
作者:朱先忠编译  来源:天极网 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐