2012-10-13 22 views
13

this okudum ama nasıl çalıştığını tam olarak anlamadım. Web uygulaması başladığında bir özellik dosyası yüklemek ve bağlantı havuzumu kurmak istiyorum. Açıkçası, bunu sadece bir kez ve tek bir yerde yapmak istiyorum, bu yüzden eğer gerekiyorsa onu değiştirebilirim. Normal servletlerle, başlatma kodumu servlet init() yöntemine koyardım, ancak bir Jersey sunucu uygulamasıyla ona erişiminiz yok. Peki nerede yapmalıyım? Yukarıdaki bağlantıdaki dinleyiciler nasıl çalışır?Jersey webapp başlangıçta veritabanını başlat

cevap

37

Tek yapmanız gereken, ServletContextListener arabirimini uygulayan bir java sınıfı yazmaktır. Bu sınıf, web uygulaması ilk oluşturulduğunda çağrılan contextInitialized yöntemini ve yok edildiğinde çağrılacak olan contextDestroyed adlı iki yöntemi uygulamalıdır. Başlatılmasını istediğiniz kaynak contextInitialized yönteminde ve contextDestroyed sınıfında serbest bırakılan kaynakta başlatılır. Uygulama, web.xml tanımlayıcı dosyasında yapılan dağıtıldığında bu sınıfı çağırmak üzere yapılandırılmalıdır.

public class ServletContextClass implements ServletContextListener 
    { 
      public static Connection con; 

    public void contextInitialized(ServletContextEvent arg0) 
    { 
     con.getInstance();  
    }//end contextInitialized method 


    public void contextDestroyed(ServletContextEvent arg0) 
    { 
     con.close();  
    }//end constextDestroyed method 

} 

Bu şimdi uygulama dağıtıldığında uygulama ServletContextClass diyelim ve bazı neyi benzer contextInitialized yönteminde Connection veya başka bir kaynak yeri örneğini olacak

<listener> 
    <listener-class>com.nameofpackage.ServletContextClass</listener-class> 
</listener> 

web.xml yapılandırma Servlet init yöntemi ne yapar?

3

Başlangıç ​​zamanında Jersey'i değiştirmeniz gerekmediğinden, muhtemelen bir AbstractResourceModelListener istemezsiniz. İstediğiniz, javax.servlet.ServletContextListener. Web1xml öğenize listener öğelerini ekleyerek, servlet öğelerini eklediğiniz gibi ekleyebilirsiniz. İçeriğiniz (web uygulaması) ilk kez oluşturulduğunda ve Jersey sunucusu başlatılmadan önce ServletContextListener çağrılır. Bu dinleyicide veritabanına ihtiyacınız olan her şeyi yapabilir ve Jersey'i kullanmaya başladığınızda hazır olur.