如何在Tomcat启动时创建Java类?

时间:2017-10-19 07:40:51

标签: java class tomcat

我有一个在tomcat环境中运行的主Java应用程序。 现在我编写了一个java类,将其放入JAR文件和TCs lib文件夹中。我现在可以通过导入类并调用构造函数来在主应用程序中访问该类。

有没有办法在TC启动时创建一次该类。所以我可以访问类变量吗?

谢谢! 即

//编辑1 这是我的例子:

Beach.java

public class Beach {
    public static void main(String []args) {
      System.out.println("***********************");
     }
}

MyAppServletContextListener.java

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

public class MyAppServletContextListener implements ServletContextListener{
   @Override
   public void contextInitialized(ServletContextEvent arg0) {
         System.out.println("**************** ServletContextListener started");
       Beach x = new Beach();

   }

   @Override
   public void contextDestroyed(ServletContextEvent arg0) {
   }
}

这一切都进入了一个jar文件并进入: ... / WEB-INF / lib / beach.jar

这是我对Web.xml的补充:

<web-app>
   <listener>
    <listener-class>
             MyAppServletContextListener
        </listener-class>
   </listener>
</web-app>

这是server.log错误:

10:42:26,440 | ERROR | [[/APP]] | Error configuring application listener of class MyAppServletContextListener
java.lang.ClassNotFoundException: MyAppServletContextListener

1 个答案:

答案 0 :(得分:2)

您可以创建一个实现ServletContextListener

的类

一旦注册,该类将允许您调用所需的构造函数。

public class MyAppServletContextListener implements ServletContextListener{
   @Override
   public void contextInitialized(ServletContextEvent arg0) {
       YourClass x = new YourClass();
   }

   @Override
   public void contextDestroyed(ServletContextEvent arg0) {
   }
}

您需要将此类注册到web.xml中:

<web-app ...>
   <listener>
    <listener-class>
             com.yourpackage.MyAppServletContextListener
        </listener-class>
   </listener>
</web-app>