2 Replies Latest reply on Jun 28, 2006 3:32 AM by Ashutosh Maheshwari

    Calling EJB Remote Interface

    Ashutosh Maheshwari Newbie

      Hi Forum,
      I am new to Jboss and J2EE so please ignore my ignorance.

      I have a EAR file containing EJB having a remote interface.Now i have to call this remote interface from another WAR file(this WAR is not contained
      in the EAR contaning EJB).Both EAR and WAR are deployed on the same
      JBoss Server.

      How can i do this ?

      Thanks in Advance
      -Newbie





        • 1. Re: Calling EJB Remote Interface
          jaikiran pai Master

          In the web.xml of your war, have the following entry:

          <ejb-ref>
           <ejb-ref-name>GiveAnyNameByWhichYouWouldLikeToReferTheBeanInYourWebApp</ejb-ref-name>
           <ejb-ref-type>session</ejb-ref-type>
           <home>packageName.ClassNameOfTheHomeObjectOfTheBeanYouWantToRefer</home>
           <remote>packageName.ClassNameOfTheRemoteObjectOfTheBeanYouWantToRefer</remote>
           </ejb-ref>


          In the jboss-web.xml of your war, have the following entry:

          <ejb-ref>
           <ejb-ref-name>GiveAnyNameByWhichYouWouldLikeToReferTheBeanInYourWebApp(This should be same as the one given in the web.xml above)</ejb-ref-name>
           <jndi-name>TheJndiNametoWhichTheBeanIsBound(Example:somecontext/somejndiName)YouWillFindThisJndiNameInTheJboss.xmlOfTheEJB</jndi-name>
           </ejb-ref>



          For more info, have a look at the dtds of web.xml :
          http://java.sun.com/dtd/web-app_2_3.dtd

          and jboss-web.xml:
          http://www.jboss.org/j2ee/dtd


          In your code, do the lookup as:

          Context ic = new InitialContext();
           Object ejbHome = ic.lookup("java:comp/env/TheNameThatYouHadGivenInTheEJB-REF-NAMETagOfJbossWeb.xmlAbove");


          Here's an example:

          web.xml:


          <ejb-ref>
           <ejb-ref-name>MyTestBean</ejb-ref-name>
           <ejb-ref-type>session</ejb-ref-type>
           <home>com.test.ejb.MyBeanHome</home>
           <remote>com.test.ejb.MyBeanRemote</remote>
           </ejb-ref>




          jboss-web.xml:

           <ejb-ref>
           <ejb-ref-name>MyTestBean</ejb-ref-name>
           <jndi-name>myejb/test/MyTestBean</jndi-name>
           </ejb-ref>


          Lookup code:


          Context ic = new InitialContext();
           Object ejbHome = ic.lookup("java:comp/env/MyTestBean");




          • 2. Re: Calling EJB Remote Interface
            Ashutosh Maheshwari Newbie

            Thanks JaiKiran..!!!