`
wb284551926
  • 浏览: 551616 次
文章分类
社区版块
存档分类
最新评论

如何在tomcat启动时自动加载一个类

 
阅读更多

有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法。

可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:
1) 增加一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口

import java.io.IOException;


import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;


public class OpenOfficeContextListener implements ServletContextListener {


public void contextDestroyed(ServletContextEvent arg0) {

}


public void contextInitialized(ServletContextEvent arg0) {

try {

Process p = Runtime.getRuntime().exec("soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard");

p.waitFor();

System.out.println("OpenOffice注册成功");

} catch (IOException e) {

System.out.println("OpenOffice注册失败");

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}


}


2) 配置监听器web.xml:
<listener>
<listener-class>com.util.OpenOfficeContextListener</listener-class>
</listener>

注意:应用事件监听器程序是建立或修改servlet环境或会话对象时通知的类。它们是servlet规范的版本2.3中的新内容。注册一个监听程序涉及在 web.xml的web-app元素内放置一个listener元素。虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web- app元素内的子元素的次序。listener元素位于所有的servlet 元素之前以及所有filter-mapping元素之后。此外,因为应用生存期监听程序是serlvet规范的2.3版本中的新内容,所以必须使用 web.xml DTD的2.3或以后版本,而不是2.2版本,如下:
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>

分享到:
评论

相关推荐

    tomcat启动时,在后台自动执行一线程

    在Tomcat中,我们可以通过编写一个Servlet类并将其配置在web.xml文件中,使得在Tomcat服务器启动时自动加载并初始化这个Servlet。 要实现在Tomcat启动时自动执行的Servlet,我们需要在Servlet的`init()`方法中添加...

    tomcat类加载器

    通常,开发者希望在不重启服务器的情况下更新代码,这时DevLoader可能会有热部署功能,即在代码更改后,能自动或手动重新加载修改过的类,而无需停止和重新启动Tomcat服务。这大大提高了开发效率。 类加载器在...

    quartz 随tomcat启动执行一次

    Quartz 是一个开源的作业调度框架,能够触发在指定时间执行的任务(也称为作业)。它提供了丰富的调度器功能,如支持复杂的循环调度、支持并发控制等。Quartz 可以被应用在任何 Java 应用中,但大多数情况下,它被...

    Web服务启动时自动加载Servlet,并读取数据库内容

    在Web服务启动时自动加载Servlet是一种常见的优化策略,目的是在应用程序启动时就准备好Servlet实例,以便快速响应用户请求。本例中,我们将讨论如何配置Web服务以在启动时加载Servlet,并利用Spring框架来读取和...

    tomcat启动原理解析

    - `Host`代表域名,`Context`代表Web应用,每个`Context`对应一个`webapps`下的目录或WAR文件。 6. **加载Web应用** - `Context`容器会扫描`webapps`目录,加载每个Web应用。如果是WAR文件,Tomcat会自动解压到...

    centos设置tomcat开机自启动

    完成上述配置后,可以通过以下步骤验证Tomcat是否能够成功在系统启动时自动启动: 1. **重启系统**: ```bash sudo reboot ``` 2. **检查Tomcat状态**: - 如果使用的是`rc.local`方法,则可以直接检查Tomcat...

    Tomcat启动停止脚本

    "Tomcat启动停止脚本"提供了这样的便利,使得操作过程自动化,特别是当需要将这些操作集成到服务器的计划任务中时。 一、Tomcat启动脚本 启动脚本通常名为`startup.sh`(在Unix/Linux环境)或`startup.bat`(在...

    centOS7设置Tomcat8开机启动

    在Linux系统中,尤其是CentOS 7,配置Apache Tomcat 8作为开机启动服务是确保服务器启动时自动运行Web应用程序的关键步骤。这个过程对于软件实施工程师来说非常重要,因为它可以简化维护工作,避免每次系统重启后...

    quartz实例 自动生成 表达式 动态更新 xml文件 tomcat自动加载

    Tomcat自动加载是关键,因为我们需要确保Quartz能在Tomcat服务器启动时正确初始化,并且在运行过程中能够响应XML配置文件的变更。在Tomcat中,我们可以使用ContextListener来监听应用的上下文初始化和销毁事件。在上...

    tomcat自动启动脚本配置

    下面是一个完整的自动启动脚本配置示例: ```bash #!/bin/sh # chkconfig: 2345 20 80 # description: autoStartServices sleep 120 source /etc/profile sys_log="/var/log/startService.log" date +"%Y-%m-%d ...

    myeclipse下tomcat动态加载

    动态加载是指在程序运行过程中,根据需要加载相应的类或模块,而不是在程序启动时一次性加载所有内容。在Web开发中,动态加载通常指的是服务器能够自动检测到应用的改动,并实时更新,而无需停止服务。 1. **...

    Tomcat停止与启动shell

    标题 "Tomcat停止与启动shell" 指的是一个用于管理Tomcat服务器的脚本,通常这个`restart.sh`文件是用来自动化Tomcat服务的启动和停止操作的。Tomcat是Apache软件基金会的一个开源项目,是一个广泛使用的Java ...

    intellij idea使用tomcat开发时自动部署jndi数据源

    在IntelliJ IDEA中,为了让项目在启动Tomcat时自动部署这个数据源,我们需要在项目的`WEB-INF`目录下创建一个`context.xml`文件,将之前在`server.xml`中的`Resource`标签复制到这里。这将确保每次应用启动时,这个...

    Linux 部署jenkins war包直接tomcat启动

    6. **等待Jenkins初始化**:当Tomcat启动并加载WAR包后,Jenkins会开始初始化过程。这个过程可能需要几分钟,取决于服务器性能和网络速度。 7. **访问Jenkins**:打开浏览器,输入`...

    nsis打包 一键安装javaWEB项目,安装完后重启电脑,tomcat服务自动加载

    在网上找了好多关于Nsis打包JavaWeb和tomcat的方法,都没有能让tomcat服务自动重启的,便自己研究编写了一个方法。供大家参考! 1、实现程序一键安装 2、卸载 3、安装时验证密码 4、应用系统快捷方式启动、注册...

    tomcat启动脚本

    Tomcat启动时会扫描这个目录,寻找WAR文件或已解压的目录并自动部署应用。 7. **`test.vbs`文件**:在这个场景下,这个文件可能是用来自动化或者测试Tomcat启动的VBScript脚本。VBScript可以调用命令行执行`...

    Tomcat6连接池配置详解(自动重连)

    这样Tomcat在启动时会加载这些驱动,使得能够正确地建立数据库连接。 #### 五、修改Hibernate配置文件 **4. 修改项目hibernate配置文件** 对于使用Hibernate框架的应用,需要在项目的hibernate配置文件中进行...

    Tomcat的配置及出现问题的解决方法

    在Tomcat启动时,可能会出现加载信息提示界面停留几秒钟就消失了的问题。这可能是由于server.xml文件中的配置问题所致。 4.Tomcat启动时自动关闭 在Tomcat启动时,可能会出现自动关闭的问题。这可能是由于地址被...

    Struts2在Tomcat容器中的加载过程

    1. **启动Tomcat**:当Tomcat启动时,会扫描WEB-INF目录下的web.xml文件,读取并注册所有配置的Servlet过滤器。 2. **初始化Filter Dispatcher**:Struts2的Filter Dispatcher被初始化,加载配置文件(如struts-...

    Eclipse Tomcat Server 加载项目

    - 在Eclipse中创建一个新的Web项目或打开现有项目。 - 确保项目结构符合标准Web应用的要求,例如包含`WEB-INF`目录等。 **2. 将项目添加到Tomcat服务器** - 在“Server”视图中找到Tomcat服务器,双击打开...

Global site tag (gtag.js) - Google Analytics