EJB 2.1 timer service好象是能实现这个功能,具体的我也没用过,这有一篇介绍:http://staf.sourceforge.net/getservices.php
共同学习!
共同学习!
解决方案 »
- 用java代码帮忙解析一下下面这个字符串
- visual svn 服务器,为什么只能在本机使用
- No getter method for property lockno of bean org.apache.struts.taglib.html.BEAN
- 字符串中的数字怎么计算??
- 求一Hibernate查询
- Spring Hibernate 配置问题
- 逗号的,双引号自动处理机制。过滤器也可以。
- 紧急提问。(无法解析格式不规范的HTML文件)怎么解决?在线等待
- 新手问题:如何处理用hibernate读取出来的数据?
- struts里面的action bean属于mvc的那一层啊??
- static public int g() 和 public static int g()两个方法有什么区别
- 请问各位高手,java读取excel2000文件都有哪些API,哪个好用!
Interface TimerService
方法概览
Timer createTimer(java.util.Date initialExpiration, long intervalDuration, java.io.Serializable info) 创建一个间隔重复计时器。
Timer createTimer(java.util.Date expiration,java.io.Serializable info) 创建一个单个行动计时器。
Timer createTimer(long initialDuration,long intervalDuration, java.io.Serializable info) 创建一个间隔重复计时器。
Timer createTimer(long duration,java.io.Serializable info) 创建一个单个行动计时器。
java.util.Collection getTimers() 把所有的运行的计时器与Bean相联系。
方法细节:
createTimer
public Timer createTimer(long duration, java.io.Serializable info)
throws java.lang.IllegalArgumentException,
java.lang.IllegalStateException,
EJBException
创建一个在指定的传递周期之后执行的单个行动计时器。
参数:
duration -以毫秒为单位,指定的传递周期。
info -计时器到期时的请求信息,可以为空。
返回值:
新的计时器。
引发:
java.lang.IllegalArgumentException – 如果指定的传递周期为负值。
java.lang.IllegalStateException – 调用错误,如果调用一个不允许存取的实例的方法。
EJBException – 如果出现系统级的错误。
createTimer
public Timer createTimer(long initialDuration, long intervalDuration, java.io.Serializable info)
throws java.lang.IllegalArgumentException,
java.lang.IllegalStateException,
EJBException
创建一个间隔重复计时器,该计时器在经过指定的传递周期之后执行,并且任务随后在指定的时间间隔重复执行。
参数:
initialDuration -以毫秒为单位,计时器第一次执行前的传递周期。
IntervalDuration -以毫秒为单位,指定的时间间隔。
info -计时器到期时的请求信息,可以为空。
返回值:
新的计时器。
引发:
java.lang.IllegalArgumentException – 如果传递周期或者间隔时间为负值。
java.lang.IllegalStateException -调用错误,如果调用一个不允许存取的实例的方法。
EJBException – 如果出现系统级的错误。
createTimer
public Timer createTimer(java.util.Date expiration, java.io.Serializable info)
throws java.lang.IllegalArgumentException,
java.lang.IllegalStateException,
EJBException
创建一个在指定的时间执行的单个行动计时器。
参数:
expiration –指定的时间。
info -计时器到期时的请求信息,可以为空。
返回值:
新的计时器。
引发:
java.lang.IllegalArgumentException-如果指定的时间为空或者expiration.getTime()为负值。
java.lang.IllegalStateException -调用错误,如果调用一个不允许存取的实例的方法。
EJBException – 如果出现系统级的错误。
createTimer
public Timer createTimer(java.util.Date initialExpiration, long intervalDuration,
java.io.Serializable info)
throws java.lang.IllegalArgumentException,
java.lang.IllegalStateException,
EJBException
创建一个间隔重复计时器,该计时器在指定的时间执行,并且任务随后每经过指定的间隔就执行一次。
参数:
initialExpiration–指定的时间。
IntervalDuration -以毫秒为单位,指定的时间间隔。
info -计时器到期时的请求信息,可以为空。
返回值:
新的计时器。
引发:
java.lang.IllegalArgumentException-如果指定的时间为空、间隔时间为负值或者initialExpiration.getTime()为负值。
java.lang.IllegalStateException -调用错误,如果调用一个不允许存取的实例的方法。
EJBException – 如果出现系统级的错误。
getTimers
public java.util.Collection getTimers()
throws java.lang.IllegalStateException,
EJBException
把所有的运行的计时器与Bean相联系。
返回值:
javax.ejb.Timer对象的收集器。
引发:
java.lang.IllegalStateException -调用错误,如果调用一个不允许存取的实例的方法。
EJBException – 如果出现系统级错误。
Interface TimedObject
方法概览
void ejbTimeout(Timer timer) 调用计时器。
方法细节:
ejbTimeout
public void ejbTimeout(Timer timer)
计时器执行前被EJB容器调用。
参数:
timer –调用的计时器名。
有其他的解决办法吗?
别的方法我就不知道了,我也只是看到过这方面的介绍,具体也没有做过。不好意思!又解决方案的话别忘了给我讲一讲!多谢了!
或
写一个servlet,在web.xml配置为
<servlet>
<servlet-name>servlentname</servlet-name>
<servlet-class>full name of servlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
然后实现这个servlet的init方法,创建一个Timer,这样你的应用程序就会有一个定时器了
private java.util.Timer timer;
timer = new Timer(true);
timer.schedule(new java.util.TimerTask() {
public void run() {
//每隔5分钟要触发的事件}
}, 0, 5*60*1000);
我哭!~~~~~
典型的矛盾转移的办法