我有一个在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
答案 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>