您的位置:首页 > 运维架构 > Tomcat

How to Run Java Program Automatically on Tomcat Startup

2018-02-26 18:18 2441 查看
如何在启动tomcat时候,自动启动一个jar程序。
觉得这个应该在打包tomcat web服务为一个独立程序的时候应该有点作用。原文博客特别不错。
原文地址:https://crunchify.com/how-to-run-java-program-automatically-on-tomcat-startup/


Recently I wanted to start my standalone Java Application on Tomcat Startup. Also found so many other related questions on net. i.e.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 Servletand 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 
<load-on-startup>
 and 
<servlet>
 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.web.xml
<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
 filecomplete web.xml
<?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.javaJava
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..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐