Java JBoss AS 7-启动初始化后

Java JBoss AS 7-启动初始化后,java,jboss,web.xml,Java,Jboss,Web.xml,有没有办法捕获一个事件/实现一个类或类似的东西,以检测JBoss(AS7)是否已启动并运行,以及所有应用程序是否已部署 我制作了一个StartupServlet(它扩展了HttpServlet),因为我需要调用本地web服务来初始化系统。但是由于我的应用程序没有完全部署,我对web服务的调用(在StartupServlet中)以“404NotFound错误”结束 我尝试在web.xml上使用…,但它不起作用。您可以尝试使用启动EJB,如下所述: 但是,bean不会检测您的应用程序是否已部署,只检

有没有办法捕获一个事件/实现一个类或类似的东西,以检测JBoss(AS7)是否已启动并运行,以及所有应用程序是否已部署

我制作了一个StartupServlet(它扩展了HttpServlet),因为我需要调用本地web服务来初始化系统。但是由于我的应用程序没有完全部署,我对web服务的调用(在StartupServlet中)以“404NotFound错误”结束


我尝试在web.xml上使用
,但它不起作用。

您可以尝试使用
启动
EJB,如下所述:

但是,bean不会检测您的应用程序是否已部署,只检测当前应用程序(包含bean的应用程序)是否已部署和启动。由于
@PostConstruct
方法很早就被调用,因此您不能依赖任何其他可用的bean或服务


编辑:Jboss还有一个。AFAIK它还可以用于查询部署。不幸的是,它的文档并没有给人留下深刻的印象,但也许您可以找到它。

根据我的理解,您不需要检测所有应用程序是何时部署的,您只需要了解应用程序是何时部署的。为此,应定义ServletContextListener:

在部署时,您无法捕获:

public void contextInitialized(ServletContextEvent sce)
{
      servletContext = sce.getServletContext();
}

我试过了,但这叫早起。。我开始认为没有办法做到这一点。@Joshua-至少这不是小事。我又增加了一种可能性——也许它会有所帮助。
public void contextInitialized(ServletContextEvent sce)
{
      servletContext = sce.getServletContext();
}