2011-02-15 6 views
5

(मुझे यकीन है कि नहीं कर रहा हूँ इस सवाल का सामान्य रूप में जावा ईई ऐप्स पर लागू होती या Websphere विशिष्ट है यदि।)प्रारंभ होने से एक जावा ईई एप्लिकेशन को रोकने के लिए जब स्प्रिंग डि विफल रहता है

जब हम एक स्प्रिंग डि विफलता मिल उन ऐप्स पर जिन्हें हमने वेबस्पेयर पर तैनात किया है (उदाहरण के लिए, एक जेएनडीआई लुकअप विफलता) एप्लिकेशन अभी भी सफलतापूर्वक शुरू हुआ प्रतीत होता है।

[15/02/11 17:21:22:495 GMT] 00000037 ContextLoader E org.springframework.web.context.ContextLoader initWebApplicationContext Context initialization failed 
           org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mybean' defined in 
    ...big stack trace... 
[15/02/11 17:21:22:526 GMT] 00000037 ApplicationMg A WSVR0221I: Application started: myapp 

वसंत प्रारंभिकरण के दौरान अपवादों को फेंकने पर मैं एप्लिकेशन को कैसे शुरू कर सकता हूं?

+0

उदाहरण के लिए टॉमकैट 6.0 में एप्लिकेशन प्रारंभ नहीं होगा यदि वसंत संदर्भ नहीं बनाया जा सकता है। – Ralph

उत्तर

2

जांचें कि this मदद करता है या नहीं। उस पर आधारित मुझे लगता है कि यह एप्लिकेशन सर्वर-विशिष्ट है, लेकिन यकीन नहीं है।

0

बाध्यकारी वसंत संदर्भ के जीवन चक्र को एप्लिकेशन के जीवन चक्र के साथ मदद करनी चाहिए।

अंदर J2EE सर्वर स्प्रिंग संदर्भ ज्यादातर org.springframework.context.access.ContextSingletonBeanFactoryLocator (उदाहरण के लिए यह org.springframework.ejb.interceptor.SpringBeanAutowiringInterceptor द्वारा प्रयोग किया जाता है) के माध्यम से हासिल किया गया है। एप्लिकेशन स्टार्टअप पर उत्सुकता से वसंत संदर्भ प्रारंभिकता को आमंत्रित करना नौकरी करना चाहिए।

यह WebSphere विशिष्ट स्टार्टअप बीन्स का उपयोग कर तरीके से किया जा सकता है:

 

@RemoteHome(AppStartUpHome.class) 
@Stateless 
public class SpringLifecycleBean { 
    private static Log logger = LogFactory.getLog(SpringLifecycleBean.class); 
    private static BeanFactoryReference bfr; 

    public boolean start() throws RemoteException { 
     logger.debug("Initializing spring context."); 

     try { 
      BeanFactoryLocator bfl = ContextSingletonBeanFactoryLocator.getInstance(); 
      //hardcoded spring context's name (refactor for more complex use cases) 
      bfr = bfl.useBeanFactory("appContext"); 
     } catch (Exception e) { 
      logger.error("Spring context startup failed", e); 
      return false; 
     } 

     return true; 
    } 

    public void stop() throws RemoteException { 
     if (bfr != null) { 
      logger.debug("Releasing spring context."); 
      bfr.release(); 
     } 
    } 

} 
 

javax.servlet.ServletContextListener समान कोड भी काम करेंगे युक्त के साथ एक webapp मॉड्यूल जोड़ा जा रहा है।

संबंधित मुद्दे