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

    Calling EJB Remote Interface

    ashudagr8

      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

          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
            ashudagr8

            Thanks JaiKiran..!!!