2011-10-20 13 views
6
public class Servlet2Stateless extends HttpServlet { 

@EJB private HelloUserLocal helloUser; 

    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 
     out.println(newSess.getName()); 


} 

कोड के काम से ऊपर होगा जब मेरे पास ईजेबी और सर्वलेट विभिन्न सर्वरों पर तैनात है? या मुझे इसे पारंपरिक तरीके से कॉल करने की ज़रूरत है ????रिमोट कॉल के लिए @EJB एनोटेशन काम करता है?

उत्तर

6

यदि ईजेबी आपके क्लाइंट (सर्वलेट) से अलग सर्वर पर रहता है तो आप @EJB एनोटेशन के साथ निर्भरता इंजेक्शन का उपयोग नहीं कर सकते हैं।

मुझे लगता है कि आपको पुराने जेएनडीआई तरीके से जाना होगा।

2

ईजेबी 3.1 spec के अनुसार, आप विभिन्न मामलों में @EJB एनोटेशन का उपयोग कर सकते हैं, जिसमें सर्वलेट भी शामिल है।

समस्या यह है कि आप विभिन्न होस्टों में क्लाइंट और सर्वर चला रहे हैं। आप जिस सर्वर का उपयोग कर रहे हैं उसके आधार पर, आप ईजेबी एनोटेशन का उपयोग करने में सक्षम हो सकते हैं। This post बताता है कि वेबलॉगिक में इसे कैसे किया जाए।

कहने की जरूरत नहीं है कि आपको किसी भी मामले में सर्वर EJB को @Remote के रूप में परिभाषित करना होगा।

0

यदि आपका कंटेनर सीडीआई का भी समर्थन करता है, तो आप जेएनडीआई लुकअप के लिए बीन whcih के लिए एक सीडीआई निर्माता विधि लिख सकते हैं। फिर आप कम से कम इंजेक्शन साइट से लुकअप को अलग कर सकते हैं।

0

एक स्टैंडअलोन क्लाइंट में निर्भरता इंजेक्शन का उपयोग करने के बारे में क्या?

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