出错代码:
1. timer = new Timer(); 2. timer.schedule(new MQConnectionTimerTask(), new Date(), 0); |
错误信息:
1. 严重: Exception sending context initialized event to listener instance of class com.queuemanagerlistener.listener.MQConnectionStatusListener 2. java.lang.IllegalArgumentException: Non-positive period. 3. at java.util.Timer.schedule(Timer.java:221) 4. at ngbss.iac.queuemanagerlistener.listener.MQConnectionStatusListener.contextInitialized(MQConnectionStatusListener.java:72) 5. at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135) 6. at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630) 7. at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 8. at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 9. at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 10. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 11. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 12. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) |
原因:
在项目中用到了TimerTask时间调度器,如果调度间隔时间为0的时候,则会发生错误:java.lang.IllegalArgumentException: Non-positive period.,必须要设置大于0 的数。
1. timer = new Timer(); 2. timer.schedule(new MQConnectionTimerTask(), new Date(), 1 * 60 * 1000); |