在另一个帖子里大家说用Quartz,研究了一下好像不是我要的东东。
我的Tomcat里的server.xml配置了1个java工程的路径“D:\project\Interface\WebRoot”,如下所示。现在Tomcat启动后,实现1个webservice接口,就是别人可以通过wsdl调用我java工程里的方法。那我怎么在这个java工程里加个类,才能每隔3分钟就执行这个类呢(这个类是调用别人webservice的客户端)?
- XML code
<!-- Define the Tomcat Stand-Alone Service --> <Service name="Catalina"> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/Project_name" docBase="D:\project\Interface\WebRoot" debug="0" reloadable="false" /> </Host> </Engine>
------解决方案--------------------------------------------------------
http://wenku.baidu.com/view/1e10172ce2bd960590c677f8这里有。定义一个定时器然后web.xml配置就ok啦
------解决方案--------------------------------------------------------
自己写一个servlet类,在servlet的init方法里写个定时器每隔三分钟执行你的类即可
- Java code
Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub //执行你的任务类 } }, new Date(), 3000);//间隔3秒执行一次定时器任务
------解决方案--------------------------------------------------------
在web.xml配置一个servlet设置启动顺序优先级高些(说白了就是web服务启动时调用这个类)
<servlet>
<servlet-name>t1</servlet-name>
<servlet-class>com.base.test.T1</servlet-class>
<!-- 如果需要自动加载,加下面一句 -->
<load-on-startup>1</load-on-startup>
</servlet>
在这个T1类中的初始化方法ini中写一个Timer类,按shcedule 定时去执行那个业务方法即可。
------解决方案--------------------------------------------------------
或者直接写个监听器类也一样。listener
一样在web.xml配置,listener类可在web启动时自动加载。不要配loader参数