0 Replies Latest reply on Aug 8, 2006 11:21 PM by None None

    When JBoss 4.04 injects a bean into JNDI, how does it choose

    None None Master

      Here's my question:

      I have some Stateless Session Bean classes. This is a very simple applications which lets users leave their names and phone numbers so a salesman can contact them later. To do this, I have set up an Inquiry entity bean.

      I also have a stateless session bean called InquiryManagerBean. There is an InquiryManagerBean interface like this:

      @Local public interface InquiryManagerBean {
       /** Create a new persistent Inquiry instance */
       public Inquiry create(Inquiry toCreate);

      And then a class which implements it:

      @Stateless public class InquiryManagerBeanLocal implements InquiryManagerBean {
       @PersistenceContext EntityManager entityManager;
       /** Creates a new instance of InquiryManagerBeanLocal */
       public InquiryManagerBeanLocal() {
       public Inquiry create(Inquiry toCreate) {
       if(entityManager == null) {
       logger.severe("No entity manager was found in " +
       "this persistence context! Nothing will work.");
       return null;
       if(toCreate == null) return null;
       return toCreate;

      Now I have a servlet that needs to get this InquiryManagerBean so it can persist inquiries, etc. It looks it up like this:

       InitalContext context = new InitialContext();
       InquiryManagerBean inquiryManagerBean =
       (InquiryManagerBean) context.lookup("MyApplicationName/InquiryManagerBeanLocal/local");

      My question is, this does not make sense. Shouldn't I be looking the bean up as "MyApplicationName/InquiryManagerBean/local"? The servlet is getting an interface which is not necessarily an instance of the actual InquiryManagerBeanLocal class. All it knows about or cares about is that the object it gets implements InquiryManagerBean.

      So, am I doing something wrong, or?