2009-12-21 10 views
10

मैं सत्र सेम में कई तरीके की तरह करने की कोशिश की:JBoss में SessionContext प्राप्त करने के लिए कैसे

@Resource 
private SessionContext ctx; 

या

private SessionContext ctx; 

@Resource 
private void setSessionContext(SessionContext ctx) { 
    this.sctx = ctx; 
} 

या

InitialContext ic = new InitialContext(); 
SessionContext ctx = (SessionContext) ic.lookup("java:comp/env/sessionContext"); 

उनमें से कोई भी काम किया, differnet अपवाद जेबीएसएस में हुआ।

मैं वास्तव में इसके बारे में पागल हो जाता हूं। कोई भी मुझे बता सकता है कि क्या गलत है। आपका बहुत बहुत धन्यवाद!

उत्तर

13

दो पहले समाधान (फ़ील्ड इंजेक्शन और सेटर विधि इंजेक्शन) ठीक दिखते हैं और काम करना चाहिए।

मैं तीसरा (देखने दृष्टिकोण) आप इसी @Resource(name="sessionContext") एनोटेशन नहीं दिखा था के रूप में के बारे में संदेह है, लेकिन यह भी काम करना चाहिए अगर ठीक से इस्तेमाल किया।

एक चौथा विकल्प मानक नाम java:comp/EJBContext

@Stateless 
public class HelloBean implements com.foo.ejb.HelloRemote { 
    public void hello() { 
    try { 
     InitialContext ic = new InitialContext(); 
     SessionContext sctxLookup = 
      (SessionContext) ic.lookup("java:comp/EJBContext"); 
     System.out.println("look up EJBContext by standard name: " + sctxLookup); 
    } catch (NamingException ex) { 
     throw new IllegalStateException(ex); 
    } 
    } 
} 

को देखने के लिए होगा ये चार दृष्टिकोण सभी EJB 3 संगत हैं और के रूप में 4 Ways to Get EJBContext in EJB 3 में याद दिलाया निश्चित रूप से किसी भी जावा EE 5 अनुप्रयोग सर्वर के साथ काम करना चाहिए। कृपया अपवाद का पूरा स्टैक ट्रेस प्रदान करें जो आपको मिलता है यदि आप नहीं करते हैं।

0

आप निम्नलिखित कोड का उपयोग करके इन बाइंडिंग को सूचीबद्ध कर सकते हैं, यह आपको संदर्भ में उपलब्ध चीज़ों को दिखाएगा।

Context initCtx = new InitialContext(); 
Context context = initCtx.lookup("java:comp") as Context 
context.listBindings("").each { 
    println it 
} 

Dependending अगर इस कोड को एक EJB संदर्भ या वेब संदर्भ आप विभिन्न उत्पादन देखना होगा में चलाया जाता है (यह गणना से अधिक यात्रा (प्रत्येक) करने के लिए ग्रूवी कोड का उपयोग करता है)।

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