Tomcat启动就执行特定方法

import java.util.Timer;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

public class TestListener implements ServletContextListener {

private Timer timer = null;

public void contextInitialized(ServletContextEvent event) {

timer = new Timer(true);

timer.schedule(new TestTimer(), 0, 86400000);//milliseconds

}

public void contextDestroyed(ServletContextEvent event) {

timer.cancel();

}

}

------------------------------------------

import java.util.TimerTask;

public class TestTimer extends TimerTask {

public void run() {

// do something ...

}

}

------------------------------------------

web.xml:

<listener>

<listener-class>test.TestListener</listener-class>

</listener>

Tomcat启动就执行特定方法,布布扣,bubuko.com

时间: 2024-10-08 20:59:33

Tomcat启动就执行特定方法的相关文章

spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动. 问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则会报错:javax.naming.NameNotFoundException: Name com.test.InitS

Tomcat启动失败的解决方法

在使用Tomcat的时候,经常会遇到启动失败的问题:解决方法:1.检查环境变量的配置,jdk的配置2.检查端口是否被占用. 关于环境变量的配置很容易搜到,如果按照网上的教程配置好了,但是还是启动失败的话,这时就需要检查端口是否被占用了,实际上十有八九是端口被占用了.下面介绍第二种方法:打开dos窗口,输入以下命令: netstat -abn || findstr "8080" 或者 netstat -aon || findstr "8080"a:显示所有的连接和侦听

HttpURLConnection在main函数中和tomcat启动后执行的区别

当有一个HttpURLConnection请求类时, 在用main函数调用能狗返回值,但是tomcat启动后,程序调用又返回值为空,如下: 如上图,在不知道别人方法怎么处理的情况下,我门的参数应该完全模拟前端 试一下如下方式 给中文参数加上URLEncoder.

【Spring框架】 ? 项目启动时执行特定处理及ApplicationListener源码分析

1.背景 在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作. 本文重点介绍如何在服务启动中,或启动完成时执行相关处理. 2.针对上述场景,有如下实现方法 A:实现基于javaweb的ServletContextListener接口,重写contextInitialized()接口   B:实现基于javaweb的javax.servlet包下的Filter接口,重写init(FilterConfig filterConfig)接口   C:继

Java项目启动时执行指定方法的几种方式

1.使用 @PostConstruct,作用于方法上面. @Componentpublic class PostConstruct { @PostConstruct public void test() { System.out.println("PostConstruct:开始运行..."); }} 2.使用 ApplicationRunner. @Componentpublic class Start implements CommandLineRunner { @Override

解决MyEclipse下Tomcat启动变慢的方法

 最近感觉用myeclipse启动tomcat的时间越来越长..不但启动慢并且启动后打开的页面也慢,经过查找找到以下解决办法.. 1.由于Tomcat是服务器,部署好的工程就会一直驻留到服务器里,每次启动都会把部署到服务器里的工程全部启动,工程多了自然启动时间就慢,所以可以把以前的删除:tomcat安装目录D:\Tomcat\apache-tomcat-7.0.37\webapps在   webapps目录下把会看到以前的工程都删除了. 2.可能是因为eclipse和tomcat的交互而产生

CentOS7.4 系统下 Tomcat 启动慢解决方法

CentOS7.4 系统下 Tomcat 启动慢解决的方法 首先查看日志信息,查看因为什么而启动慢 在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的.Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥.为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥. 22-Apr-2017 19:33:07.623 INFO [localhost-startS

tomcat启动时自动运行代码

原文链接:http://jingpin.jikexueyuan.com/article/49660.html 作者: 一直向北 发布时间:2015-07-13 11:12:13 方法1:tomcat 自动执行servlet 写一个servlet,在init()方法中写好想要执行的程序,程序如下: eclipse新建一个web\Dynamic Web Project , name = myweb1 , 把tomcat中的 servlet-api.jar复制到lib中,新建一个类MyServlet.

spring容器加载完成执行某个方法

今天遇到一个问题,需要在项目中加入一个定时器,需要在项目启动后就执行,所以就在网上找spring容器初始化之后就执行的方法有什么: 查了很多资料,总共找到了两个符合条件的方法,都是用了一下之后,结合网上的信息说说我个人的理解: 1.写一个类,实现BeanPostProcessor,这个接口有两个方法: (1)postProcessBeforeInitialization方法,在spring中定义的bean初始化前调用这个方法: (2)postProcessAfterInitialization方