Java EE企业应用程序:在部署/启动时执行一些操作

我希望在部署了我的应用程序(使用业务逻辑,EJB和客户端,Web的企业应用程序)后执行某些操作。 例如,我想让一些实体处于持久状态,或者创建一个文件。 我怎样才能做到这一点?

谢谢。

配置SerlvetContextListener并覆盖contextInitilized()

在您的Web应用程序描述中,web.xml

   com.someCompany.AppNameServletContextListener   

 package com.someCompany; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class AppNameServletContextListener implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { System.out.println("ServletContextListener destroyed"); } @Override public void contextInitialized(ServletContextEvent arg0) { System.out.println("ServletContextListener started"); // do the things here } } 

“默认”方式是使用带有init()方法的servlet。 然后在servlet-descriptor中将此servlet标记为load-on-startup 1:

例:

 Seam Resource Servlet org.jboss.seam.servlet.SeamResourceServlet 1  

一旦部署了servlet(在部署EJB之后发生),就会调用init()方法,您可以执行所需的任务。

使用现有的Web应用程序,最简单和最简单的方法是使用ServletContextListener,否则在EJB 3.1中可以使用自动计时器或启动单例会话bean。