2012-02-07 22 views
5

यहाँ मेरी सेम है कि एक सिंगलटन सेम InformationService इंजेक्षन करने की कोशिश कर रहा है:EJB 3.1: सिंगलटन सेम एक और राज्यविहीन सेम हालांकि दोनों सेम पंजीकृत हो रहे हैं अंदर इंजेक्ट किया जा रहा नहीं

@Path("/information/{name}") 
@Stateless (name="InformationResource") 
public class InformationResource { 

    @EJB 
    private InformationService appService; 

    @GET 
    @Produces(MediaType.APPLICATION_XML) 
    public Information getInfo(@PathParam("name") String name){ 
     return appService.getMap().get(name); 
    } 

    @PUT 
    @POST 
    @Consumes(MediaType.APPLICATION_XML) 
    public Information putInfo(@PathParam("name") String name, Information info){ 
     return appService.getMap().put(name,info); 
    } 

    @DELETE 
    public void deleteInfo(@PathParam("name") String name){ 
     appService.getMap().remove(name); 
    } 
} 

यह InformationService है वर्ग

@Singleton 
public class InformationService { 

    private Map<String,Information> map; 

    @PostConstruct 
    public void init(){ 
     map = new HashMap<String,Information>(); 

     map.put("daud", new Information("B.Tech","Lucknow")); 
     map.put("anuragh", new Information("M.Sc","Delhi")); 
    } 

    public Map<String,Information> getMap(){ 
     return map; 
    } 

} 

एक बहुत ही सरल JAX-आरएस कार्यान्वयन की इसकी हिस्सा है और मैं JBoss 6.1 फाइनल में युद्ध के रूप में तैनाती कर रहा हूँ। समस्या यह है कि सूचना सेवा जब मैं उचित अनुरोध करता हूं तो एक NullPointerException फेंकता है। अगर मैं ऐप सेवा को स्पष्ट रूप से प्रारंभ करता हूं, तो सब कुछ ठीक काम करता है। @EJB एनोटेशन क्यों काम नहीं कर रहा है?

उत्तर

0

क्या आप जर्सी का उपयोग आरईएसटी कार्यान्वयन के रूप में कर रहे हैं? यदि ऐसा है, तो ईजेबी इंजेक्शन बॉक्स से बाहर समर्थित नहीं है।

This link इस पर और एक समाधान पर अधिक जानकारी प्रदान करता है।

+0

मैं जेएक्स-आरएस (आराम से नहीं) के जेबॉस के कार्यान्वयन का उपयोग कर रहा हूं – Daud

0

जांचें कि आपका @Singleton javax.ejb.Singleton है। एनपीई से पहले कोई अन्य अपवाद?