Inicializace Java Web App

hlasů
2

Mám jednoduchou webovou aplikaci, s několika jsp stránky, servlety a POJO let. Chci inicializovat spojení bazénu před všechny požadavky jsou vyrobeny. Jaký je nejlepší způsob, jak to udělat? Může to být provedeno, když je aplikace poprvé nasazeny, nebo si budete muset počkat až do první požadavek, který přijde?

Položena 22/11/2008 v 16:40
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
8

Použijte ServletContextListener a prohlásit jej řádně web.xml. Tento způsob je vhodnější než spuštění servletu. To je více organizovaná a váš záměr je zřejmý. To je také zaručeno, že běžet před jakoukoliv žádost. Také vám dává vypnutí háku vyčistit bazén.

Zde je úryvek z mého web.xml, například:

<listener>
  <listener-class>
    com...ApplicationListener
  </listener-class>
</listener>

a tady je fragment kódu ze třídy samotné. Ujistěte se, že jste zachytit výjimky, takže nešíří do svého aplikačního serveru a poskytují užitečné zprávy protokolu - ty vám pomůže, když jste sledování vaší žádosti.

public class ApplicationListener implements ServletContextListener {

  private ServletContext sc = null;

  private Logger log = Logger
    .getLogger(ApplicationListener.class);

  public void contextInitialized(ServletContextEvent arg0) {
    this.sc = arg0.getServletContext();
    try {
      // initialization code
    } catch (Exception e) {
      log.error("oops", e);
    }
    log.info("webapp started");
  }

  public void contextDestroyed(ServletContextEvent arg0) {
    try {
      // shutdown code
    } catch (Exception e) {
      log.error("oops", e);
    }
    this.sc = null;
    log.info("webapp stopped");
  }

}

Viz API zde a příklady zde .

Odpovězeno 22/11/2008 v 17:23
zdroj uživatelem

hlasů
0

A co základní spouštěcí servletem inicializovat spojení bazénu?

Odpovězeno 22/11/2008 v 16:59
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more