timernotify.java

来自「精通Jboss——Ejb和Web Services开发精解的随书源代码」· Java 代码 · 共 45 行

JAVA
45
字号

package com.liuyang.jmx.mbeans.timernotify;

import java.util.Date;

import javax.management.JMException;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.NotificationFilter;
import javax.management.ObjectName;
import javax.management.timer.Timer;

public class TimerNotify {
	public static String MESSAGETYPE = "重要通知";
	public static void main(String[] args) {
		MBeanServer server = MBeanServerFactory.createMBeanServer();
    	System.out.println("程序启动了!");    
		try {
			ObjectName timer    = new ObjectName("book.liuyang:name=timer");
	  		ObjectName receiver = new ObjectName("book.liuyang:name=listener,"+"source=timer");
	  		server.registerMBean(new Timer(), timer);  
	  		server.registerMBean(new TimerReceiver(), receiver);
	  		server.invoke(timer, "start", null, null);
	  		Date date = new Date(System.currentTimeMillis() +Timer.ONE_SECOND * 3);
	  		Integer id = (Integer)server.invoke(
	  			timer,
				"addNotification",
				new Object[] {MESSAGETYPE,"停止这个程序的通知到达了!",null,date},
				new String[] {
		  			String.class.getName(),
		  			String.class.getName(),
		  			Object.class.getName(),
		 	 		Date.class.getName()
				}
	  		);
	  		NotificationFilter filter = new TimeNotifyFilter(id);
	  		server.addNotificationListener(timer, receiver, filter, null);
		} catch (JMException e) {
			e.printStackTrace();
		}
  	}
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?