13 Replies Latest reply on Apr 26, 2013 8:32 AM by jaikiran

    Developed EJB3 based application that I have placed in JBOSS 7 modules is not being looked up.

    mishra.sat30

      I have created an ejb application  (MyEJB.jar) and placed in JBOSS 7 modules "com.xxx.myejb". Everything is fine module is being loaded. Now there is a war in deployments has a servlet is accessing the jar. The jar is visible (I have made entry of the module in deployment structure file). The servlet calls a method of a class SystemStart.java. Within that method I am invoking ejb already in the jar. initial context is fine but when trying to lookup ejb, it gets failed and throwing NameNotFound exception.

       

      EJB is stateless name CSTimerBean

      Local interface name CSTimerLocal

       

      Here is the code-

       

      public static Context getInitialContext() throws NamingException {

                  if (initialContext == null) {

                           System.out.println("initialContext");

                    Properties properties = new Properties();

       

                      properties.put(Context.INITIAL_CONTEXT_FACTORY,org.jboss.naming.remote.client.InitialContextFactory.class.getName());

                      properties.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");

                      properties.put("jboss.naming.client.ejb.context", new Boolean(false));

                      properties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");

                      properties.put(Context.PROVIDER_URL,"remote://localhost:4447");

             

                      properties.put(Context.SECURITY_PRINCIPAL, "jmd");

                  

                      properties.put(Context.SECURITY_CREDENTIALS, "jmd123");

                

                      System.out.println("initialContext  2"+properties);

                      initialContext = new InitialContext(properties);

                      System.out.println("initialContext  1");

                  }

                  return initialContext;

              }

       

      private static String getCSLookupName() {

         

                  String appName = "";

          

              

                  String moduleName = "UFSwitch";

          

         

                  String distinctName = "";

          

                  // The EJB bean implementation class name

                  String beanName = CSTimerBean.class.getSimpleName();

          

                  // Fully qualified remote interface name

                  final String interfaceName = CSTimer.class.getName();

          

                  // Create a look up string name

                  String name = "ejb:" + appName + "/" + moduleName + "/" +

                      distinctName    + "/" + beanName + "!" + interfaceName;

           System.out.println(name);

                  return name;

          

              }

       

      public static CSTimer doCSLookup() {

                  Context context = null;

                  CSTimer bean = null;

                  try {

                      // 1. Obtaining Context

                      context = GlobalFunctions.getInitialContext();

                      System.out.println("String LookupName"+getCSLookupName());

                      String lookupName = getCSLookupName();

                      // 3. Lookup and cast

                      bean = (CSTimer) context.lookup(lookupName);

       

                  } catch (Exception e) {

                      e.printStackTrace();

                  }

                  return bean;

              }