启动tomcat服务器自动执行一个方法
第一步:配置web.xml文件
添加如下代码
<servlet>
<servlet-name>Timer</servlet-name>
<servlet-class>com.ccpit.p4.dispatch.web.Timer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
第二步:创建一个类,名称为Timer(与web.xml文件的servlet-class内的Timer匹配)
package com.ccpit.p4.dispatch.web; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; @SuppressWarnings("serial")
public class Timer extends HttpServlet{ //Start tomcat automatically to perform listening services
//Override一定要写哦,不然启动tomcat后不会自动执行init()方法
@Override
public void init() throws ServletException{
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.scheduleWithFixedDelay(new EchoServer(), 0, 1000, TimeUnit.MILLISECONDS);
}
}
第三步:大家是不是把第二步的代码放入工程后new EchoServer()会报错,没错这里就是真正要执行我们写的服务代码,将在下面贴出,我再描述一下scheduleWithFixedDelay这个函数各个参数的含义:参数一:待执行的任务,参数二:执行任务前的延时,参数三:每次执行任务的间隔时间单位ms,参数四:设定以ms为记时单位。
服务方法代码
package com.ccpit.p4.dispatch.web;
class EchoServer implements Runnable {
@Override
public void run() {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
//下面写我们要执行的代码
System.out.println("This is a echo server. The current time is " +
System.currentTimeMillis() + "."); }
}
至此,启动服务器将会自动执行我们特指的一个方法,我是在需要自动发送邮件的时候用到了此功能,因为在服务启动或重启之后自动监控是否有需要发送的邮箱,所用使用了启动tomcat将自动执行自己设定的方法,如有疑问欢迎留言
启动tomcat服务器自动执行一个方法的更多相关文章
- python paramiko ssh.exec_command()启动tomcat服务器应用进程失败问题解决方法- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this progr
问题说明:
- 部署war包后,新增tomcat服务器,启动tomcat服务器报错解决方法
导入Maven工程后,新增tomcat服务器,启动服务器后,报如下错误: 使用http访问页面的时候报如下错误: 经过百度后,有一种方法可以解决: 在eclipse tomcat无法启动,无法访问to ...
- 用js实现在加载完成一个页面后自动执行一个方法
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 页面加载完后自动执行一个方法的js代码
1.在body中用onload: <body onload="conver()"> 2.在脚本中用window.onload: <script type=&quo ...
- Myeclipse在启动Tomcat服务器的时候总是进入debug视图的解决方法
最近调试程序,由于出现过一些错误,在调试的时候,更改过一些东西,但是后来在myeclipse下启动Tomcat服务器的时候,自动的跳入到debug视图了(以前是一启动Tomcat服务器后,直接就加载t ...
- 启动Tomcat服务器报错
启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are alre ...
- war包部署在tomcat下,使用windows service服务方式启动tomcat服务器,在包含调用dll的模块,报dll找不到问题的解决办法
问题描述: 开发了一个需要调用dll的java web程序,在idea开发环境下运行调试没问题,可以正常运行,在tomcat/bin下,运行批处理startup.bat,启动tomcat服务器,也可以 ...
- [转]eclipse启动tomcat无法访问的解决方法
这篇文章介绍了eclipse启动tomcat无法访问的解决方法,有需要的朋友可以参考一下 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080 ...
- eclipse启动tomcat无法访问的解决方法
转自:https://www.cnblogs.com/longshiyVip/p/4637680.html 问题:: tomcat在eclipse里面能正常启动,但在浏览器中访问http://loca ...
随机推荐
- B1020 月饼(25 分)
B1020 月饼(25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意 ...
- A1042 Shuffling Machine (20)
1042 Shuffling Machine (20)(20 分) Shuffling is a procedure used to randomize a deck of playing cards ...
- Postgres安装详解
PG安装 一.基础包的安装(yum源的配置,可以采用光盘挂载,及ftp yum源,针对外网环境忽略此步): yum -y install wget tcpdump glibc libgcc gcc g ...
- 图论:HDU2544-最短路(最全、最经典的最短路入门及小结)
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- LA_3942 LA_4670 从字典树到AC自动机
首先看第一题,一道DP+字典树的题目,具体中文题意和题解见训练指南209页. 初看这题模型还很难想,看过蓝书提示之后发现,这实际上是一个标准DP题目:通过数组来储存后缀节点的出现次数.也就是用一颗字典 ...
- ListNode Java创建链表
用了一种自创的比较简洁的方式来创建链表 class ListNode { //为了方便,这两个变量都使用pub1ic, //存放数据的变量,直接为int型 public int data; //存放结 ...
- RxJava Rxandroid retrofit
其实Retrofit会了.集合RxJava,RxAndroid 就很简单了. 只需要改几个地方. 1.接口里面返回的对象不再是 call,而是Observable public interface A ...
- NOI p 2017 TG游记
嗨小朋友们大家好 还记得我是谁吗 对了我就是为iot配音的演员 弹鸡鸡 今天呐我特别的要向长沙市的oier们 洛谷的oier们 还有cnblogs的oier们问声好 为什么呢 因为我们在2017年11 ...
- 01背包 HDU-1203
这道题在网上找的题解基本都是用min找出概率最小,然后用1减去的答案,我在这采用max来做,虽然只是换了公式,但是其中出现的问题还是想记录下. I NEED A OFFER! Time Limit: ...
- Leetcode 583.两个字符串的删除操作
两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例 1: 输入: "se ...