5 Replies Latest reply on Sep 16, 2008 3:19 PM by lincoln a

    JBOSS 4.0.2 and EJB 2.1 - simple application - not working

    lincoln Newbie

      I am doing first ejb program on jboss 4.0.2. i deployed ejb module successfully. but client program (web application ) giving error. i am trying to call local ejb.


      Error

      javax.naming.NamingException: ejb-local-ref: 'ejb/ejb2', with web.xml ejb-link: 'HelloBean' failed to resolve to an ejb with a LocalHome)


      ejb-jar.xml

      <enterprise-beans>
       <session>
      
       <ejb-name>alr</ejb-name>
       <home>com.HelloHome</home>
       <remote>com.Hello</remote>
       <local-home>com.HelloLocalHome</local-home>
       <local>com.HelloLocal</local>
       <ejb-class>com.HelloBean</ejb-class>
       <session-type>Stateless</session-type>
       <transaction-type>Container</transaction-type>
       </session>
       </enterprise-beans>
      </ejb-jar>



      jboss.xml

      <jboss>
       <enterprise-beans>
       <session>
       <ejb-name>alr</ejb-name>
       <jndi-name>jndi</jndi-name>
       <method-attributes></method-attributes>
       </session>
       </enterprise-beans>
       <assembly-descriptor></assembly-descriptor>
       <resource-managers>
      
       </resource-managers>
      </jboss>


      web.xml ejb related code

      <ejb-local-ref>
       <ejb-ref-name>ejb/alr</ejb-ref-name>
       <ejb-ref-type>Session</ejb-ref-type>
       <local-home>com.HelloLocalHome </local-home>
       <local>com.HelloLocal</local>
       <ejb-link>HelloBean</ejb-link>
       </ejb-local-ref>



      jboss-web.xml

      <ejb-ref>
       <ejb-ref-name>ejb/alr</ejb-ref-name>
       <local-jndi-name>jndi</local-jndi-name>
      
       </ejb-ref>
      


      client jsp page

      Properties props = new Properties();
      props.put(Context.INITIAL_CONTEXT_FACTORY,
       "org.jnp.interfaces.NamingContextFactory");
      props.put(Context.URL_PKG_PREFIXES,
      "org.jboss.naming:org.jnp.interfaces");
      props.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
      
      
       Context ctx = new InitialContext(props);
      
       System.out.println("It;s ok");
      
      
       HelloLocalHome home=(HelloLocalHome) ctx.lookup("java/env/ejb/alr");
       HelloLocal bean = home.create();
       String hello= bean.hello();
       bean.remove();
       ctx.close();



      What is the wrong in above code. Please tell me. I have been trying for this.

      some issues:

      1. If i don't write optional jboss.xml what is the optional jndi name for jboss4.0.2

      2. while calling local ejb on same machine, jndi properties are not required. can you confirm?


      Advanced thanks. Please give answer