How to Run Java Program Automatically on Tomcat Startup

本贴最后更新于 2111 天前,其中的信息可能已经水流花落

Recently I wanted to start my standalone Java Application on Tomcat Startup. Also found so many other related questions on net. i.e.

ApacheTomcatCrunchifyTipsjpg

  • I need to run an application that can run automatically that when the tomcat starts..? any suggestions…?
  • how can I start my application by default on tomcat server start/restart?
  • Is it possible to edit tomcat startup services?
  • How to Start a service automatically when the tomcat starts

To run java program automatically on tomcat startup, need to use Servlet and this Servlet initialized on tomcat startup automatically.

To execute a program, you have to use Servlet and Servlet should define in deployment descriptor web.xml file under WEB-INF folder.

web.xml file contain tags and tag. Servlet tag keeps information of Servlet class. When tomcat starts, all Servlet loads in web container and init method of Servlet loaded first. Any java statement in init method of Servlet can be executed on running tomcat startup batch or shell.

In init method we can define our scripts which have to be executed e.g. sending emails, sending newsletters, starting scheduler, etc..

Below is a simple trick to run your java program automatically on Tomcat Startup.

Step-1

Modify Web.xml file with below information. Where CrunchifyServletExample is a class name and crunchify.com.tutorials is a package name.

Modify these values as per your need.

<servlet>

    <servlet-name>CrunchifyTutorials</servlet-name>
    <servlet-class>crunchify.com.tutorials.CrunchifyServletExample</servlet-class>
    <load-on-startup>1</load-on-startup>

</servlet>

This is my complete web.xml file

<?xml version="1.0"  encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  version="3.0">

  <display-name>CrunchifyTutorials</display-name>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>CrunchifyTutorials</servlet-name>
    <servlet-class>crunchify.com.tutorials.CrunchifyServletExample</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

</web-app>

Step-2 CrunchifyServletExample.java

package  crunchify.com.tutorials;

import  javax.servlet.*;
import  javax.servlet.http.HttpServlet;

/**
* @author Crunchify.com
*/
@SuppressWarnings("serial")
public  class  CrunchifyServletExample  extends  HttpServlet{

    public  void  init()  throws  ServletException{
          System.out.println("----------");
          System.out.println("---------- CrunchifyServletExample Initialized successfully ----------");
          System.out.println("----------");
    }
}

Step-3

Now Clean your project using Maven or Project Menu -> Clean

Step-4

  • Deploy your project to Tomcat
  • Start Tomcat
  • Check your system out logs and you should see output like this

Console Output

----------
----------  CrunchifyServletExample Initialized successfully  ----------
----------

Enjoy and Happy Coding..

感谢原作者,博客转自:https://crunchify.com/how-to-run-java-program-automatically-on-tomcat-startup

  • 部署
    21 引用 • 280 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8208 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...