`

当tomcat启动时想调用某个类的某些方法

阅读更多
有些时候我们有这样的需求当tomcat启动时候或者关闭的时候我们想要调用某些方法。这个时候就可以这么做。直接贴代码


import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.quartz.SchedulerException;
import org.springframework.context.ApplicationContext;



public class MyListener implements ServletContextListener {
	private static MyJobScheduler myJobScheduler;
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		try {
			MyJobScheduler.getScheduler().shutdown();
		} catch (SchedulerException e) {
			e.printStackTrace();
		}
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		myJobScheduler = new MyJobScheduler();
	}

}




import java.util.Date;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;

public class MyJobScheduler {
	private static SchedulerFactory schedulerFactory = new StdSchedulerFactory();
	private static Scheduler scheduler = null;

	
	public static Scheduler getScheduler() {
		return scheduler;
	}


	public MyJobScheduler(){
		try {
			scheduler.start();
		} catch (SchedulerException e) {
			e.printStackTrace();
		}
	}
	
	
	static{
		try {
			scheduler = schedulerFactory.getScheduler();
			JobDetail jobDetail = new JobDetail("job1", "jgroup", MyJob.class);
			SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger", new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, Long.parseLong(ReadingProperties.getPp().getProperty("time")));
			scheduler.scheduleJob(jobDetail, simpleTrigger);
			
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (SchedulerException e) {
			e.printStackTrace();
		}
	}
}




在web.xml中需要加上
 <listener>
  	<listener-class>com.energyfuture.action.MyListener</listener-class>
  </listener>

这样我们就可以在tomcat启动时就做我们要做的事情









分享到:
评论

相关推荐

    Centos7安装配置tomcat9并设置自动启动的方法

    在Centos7系统中安装和配置Tomcat9并实现其自动启动的方法包括以下步骤和知识点: 1. Tomcat是什么? Apache Tomcat是一个开源的Servlet容器,它是Apache软件基金会Jakarta项目中的一个子项目,实现了Sun ...

    apache-tomcat

    在部署Web应用程序时,开发者通常会把应用的WAR(Web ARchive)文件放在Tomcat的webapps目录下,Tomcat会自动解压并启动该应用。WAR文件是一种打包格式,包含Web应用的所有资源,如HTML、CSS、JavaScript、图片以及...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    Servlet

    1. **加载Servlet类**:当服务器启动并接收到针对某个Servlet的第一个请求时,服务器会加载相应的Servlet类。 2. **创建Servlet实例**:接下来,服务器将为该Servlet创建一个新的实例。 3. **调用`init()`方法**:...

    Filter过滤器笔记1

    当一个请求通过Filter时,会按照定义的顺序逐个调用下一个Filter的`doFilter()`方法,直到请求被完全处理或者被某个Filter拦截。 **五、Filter的拦截路径配置** - **精准匹配**:`&lt;url-pattern&gt;/target.jsp...

    java.util.concurrent.ExecutionException 问题解决方法

    现在,我们来看Tomcat启动失败的情况: 3. **Tomcat生命周期异常**:`org.apache.catalina.LifecycleException` 指示Tomcat在启动或停止组件时出现问题。在这个例子中,问题出现在尝试启动标准上下文组件`...

    深圳部分公司面试问题

    5. **分离应用和服务用户**:应用程序部署与Tomcat启动不应使用同一个用户,以减少风险。 6. **修改会话ID名称**:更改默认的`JSESSIONID`为`PHPSESSID`或其他自定义名称,增加会话劫持的难度。 #### SVN使用 ...

    struts com-init

    在Java应用程序中,初始化通常指的是程序启动时对类、对象或者特定模块进行设置的过程。 在Struts框架中,初始化过程涉及到以下几个关键知识点: 1. **Struts ActionServlet**:这是Struts的核心控制器,负责处理...

    阿里云分布式应用服务EDAS-快速入门.pdf

    * 服务限流:作用于HSF服务提供端,允许应用提供方指定某个接口的TPS,当单位时间内的TPS达到设定值时,该接口将停止对外提供服务,所有的请求都会被拦截,直到下一个刷新时间点。 * 三种调用方式:同步调用(默认)...

    Struts2 第一篇:流程篇

    ### Struts2 第一篇:流程...以上配置中,当用户访问`http://localhost:8080/struts2_2_helloworld/hello`时,Struts2将调用`com.example.HelloWorldAction`类的`execute()`方法,并根据返回的结果展示相应的视图页面。

    端口占用问题的解决方法汇总

    端口占用通常指的是某个网络应用程序或服务占用了特定的端口号,而当该程序异常退出后,其占用的端口并未得到及时释放。这会导致之后尝试在同一端口上启动其他服务时出现“端口已被占用”的错误,从而影响服务的正常...

    eclipse技巧

    - 通过`Ctrl+Shift+G`可以找出调用某个方法的所有类。这对于调试和理解代码逻辑非常有帮助。 #### 二、代码格式化与编辑技巧 **1. 大小写转换 (Ctrl+Shift+X 和 Ctrl+Shift+Y)** - `Ctrl+Shift+X`用于将选中的...

    struts2中导入类库时需要注意的问题

    它提供了运行时类的修改和分析功能,对于Struts2的动态类加载是必要的。 在导入这些jar包后,确保将它们添加到项目的类路径(Classpath)中。如果仅导入了前面六个jar包,而忽略了`javassist-3.7.ga.jar`,那么在...

    金蝶OA百问百答

    - **问题描述**:在某些特定情况下,如Windows系统上单独的OA安装未自动附加OA数据库,或者OA应用服务器与数据库服务器不在同一台机器时,需要手工部署OA数据库。 - **解决方法**: - 对于MSSQL数据库,可以参考...

    Spring、mybatis、SpringMVC

    使用 @SpringBootApplication 注解标记启动类,并使用 @SpringBootTest 注解标记测试类。 MyBatis 框架可以使用两种方式,注解方式和 xml 配置文件方式。注解方式用于单表增删改查,比较方便。xml 配置文件方式一般...

    jsp的各种问题

    - **解释**: `init()` 方法是在Servlet第一次被加载到内存时调用的,它用于初始化Servlet配置。 #### 二十二、Servlet的入口点 - **问题**: Servlet程序的入口点是service - **答案**: 假。 - **解释**: ...

    jfinal-2.2-manual.pdf参考手册

    - **作用:** 分别是在项目启动后和项目停止前调用的方法。 - **用途:** 可用于执行一些初始化工作或清理工作。 **3.8 PropKit** - **功能:** PropKit是JFinal提供的配置文件读取工具类,方便地从配置文件中读取...

    华为java面试题

    此外,Java还提供了丰富的API来控制线程的执行,如`start()`方法启动线程、`join()`方法等待线程结束等。 5. **定义一个静态变量,然后新建一个类实例,三次`System.out.println()`该变量, 每次还要自加1,判断在哪...

Global site tag (gtag.js) - Google Analytics