मैं जेबॉस पर तैनात ईजेबी में एक प्रविष्टि बिंदु की तलाश में हूं।जेबीओएस स्टार्टअप पर ईजेबी में कॉल विधि
Servlets के पास load-on-startup
टैग है जो web.xml
में उपयोग करने के लिए है।
मैं एक ईजेबी के लिए समान init()
कार्यक्षमता की खोज कर रहा हूं।
मैं जेबॉस पर तैनात ईजेबी में एक प्रविष्टि बिंदु की तलाश में हूं।जेबीओएस स्टार्टअप पर ईजेबी में कॉल विधि
Servlets के पास load-on-startup
टैग है जो web.xml
में उपयोग करने के लिए है।
मैं एक ईजेबी के लिए समान init()
कार्यक्षमता की खोज कर रहा हूं।
यह 3.1 तक ईजेबी के लिए मौजूद नहीं था। EJB 3.1 के साथ आप कि अनुकरण करने के लिए एक सिंगलटन सेम का उपयोग कर सकते हैं:
Application Startup/Shutdown Callbacks से:
@Startup
@Singleton
public class FooBean {
@PostConstruct
void atStartup() { ... }
@PreDestroy
void atShutdown() { ... }
}
अन्यथा, आप एक ServletContextInitializer
उपयोग करने के लिए अच्छे पुराने चाल पर भरोसा करने की आवश्यकता होगी।
कुछ एप्लिकेशन-विशिष्ट एक्सटेंशन हैं, उदा। ग्लासफ़िश के लिए lifecycle listener। शायद जेबॉस के लिए ऐसी चीज है।
लेकिन यदि मैं आप थे तो मैं मानक सुविधाओं पर जितना संभव हो सके भरोसा करने की कोशिश करता हूं। गैर मानक विस्तार के साथ समस्या यह है कि आप कभी नहीं जानते कि क्या किया जा सकता है या नहीं, उदा। क्या आप लेनदेन शुरू कर सकते हैं या नहीं, आदि
प्रबंधित बीन्स का उपयोग जेबॉस स्टार्टअप पर कुछ प्रक्रिया करने के लिए किया जा सकता है, आपको कॉन्फ़िगरेशन फ़ाइल में उस प्रबंधित बीन की प्रविष्टि जोड़नी होगी।
आप विधि आप स्टार्टअप पर चलाना चाहते हैं के शीर्ष में निम्न पंक्ति जोड़ने के लिए सक्षम होना चाहिए:
@Observer("org.jboss.seam.postInitialization")
यह लेख सर्वर स्टार्टअप पर कार्यक्षमता लागू की सात अलग अलग तरीकों से वर्णन करता है। यद्यपि सभी जेबॉस के साथ काम नहीं करेंगे।
Seven ways to get things started. Java EE Startup Classes with GlassFish and WebLogic
आप 5.1 के रूप में JBoss लक्षित कर रहे हैं, और आप JBoss EJB 3.0 Extensions का उपयोग कर कोई आपत्ति नहीं है, तो आप अपने EJB bootstrap के लिए एक सेवा सेम बना सकते हैं। यदि आपकी सेवा @Management
एनोटेशन के साथ एनोटेटेड इंटरफ़ेस लागू करती है और public void start() throws Exception
हस्ताक्षर के साथ एक विधि घोषित करती है, तो जेबॉस सेवा शुरू होने पर इस विधि को कॉल करेगा। इस पर
@Service
public class BeanLauncher implements BeanLauncherManagement
{
@EJB private SessionBeanLocal sessionBean;
@Override
public void start() throws Exception
{
sessionBean.init();
}
}
@Management
public interface BeanLauncherManagement
{
public void start() throws Exception;
}
अधिक जानकारी के लिए, अतिरिक्त जीवन चक्र की घटनाओं सहित, here पाया जा सकता है: आप तो आप प्रारंभ करना चाहते हैं EJB पर एक समर्पित init()
विधि कॉल कर सकते हैं।
वैकल्पिक रूप से कोई हमेशा स्टार्ट/स्टॉप लाइफसाइकिल विधियों के साथ एमबीन का उपयोग कर सकता है। एमबीएएन को ईजेबी की आवश्यकता होती है और इसकी आवश्यकता होती है जो भी तरीके से कॉल करती है। –
धन्यवाद। दो महान पोस्ट। मैं इसके बजाय "ServletWrapper" के साथ समाप्त हुआ। लेकिन एजेंडा पर एक रिफैक्टर है। चीयर्स! – Elijah
मैं jboss 5.1 का उपयोग कर रहा हूं (सुनिश्चित नहीं है कि यह EJB3.1 का समर्थन करता है) मैं इस तकनीक का उपयोग तैनाती पर विधि का आह्वान करने के लिए कर सकता हूं? धन्यवाद। – rayman