3 Replies Latest reply on Jan 21, 2014 6:15 AM by Nicole Schweighardt

    Local ejb lookup from another ear on same JBoss 7.1.1.

    Nicole Schweighardt Novice



      I am a little bit confused about EJB invocation.

      I have got two separate EAR-files on my JBoss 7.1.1. One EAR contains ejbs that I want to use from the other EAR (from the web project in it).


      Is the best way to grant the access to have a local interface for my ejb in EAR1?

      If yes - how can I make the lookup? How is the jboss-ejb-client.properties defined?


      Thanks a lot.


        • 1. Re: Local ejb lookup from another ear on same JBoss 7.1.1.
          Sergiu Pienar Expert

          Your EJB should hold something like:

          @LocalBinding(jndiBinding = "java:global/<deploymentName>/BeanName!<fullyQualifiedBeanName>Local")


          More on this topic, here: Remote EJB invocations via JNDI - EJB client API or remote-naming project - JBoss AS 7.1 - Project Documentation Editor

          • 2. Re: Local ejb lookup from another ear on same JBoss 7.1.1.
            Wolf-Dieter Fink Master

            An Example is better than 1000 words

            You might have a look to the ejb-multi-server quickstart the app-web will invoke ejb's deployed on different servers, the app-main do it local from a JSF application.

            If you use a remote-interface you are able to decide whether you deploy it local or remote, you might need additional configuration to prevent from local serialization if wanted.

            A local-interface can only do in-vm invocations so you need to have the 'foreign' app deployed to the same server.


            hope that helps

            • 3. Re: Local ejb lookup from another ear on same JBoss 7.1.1.
              Nicole Schweighardt Novice


              and thanks for your answers.

              I took a look in ejb-multi-server quickstart. I only tested the ejb lookup from the web project to the ejb project and it works. I placed both (the app-main-ejb and app-main-web project into one EAR) And this is the difference to my project!


              I have 2 different EAR´s in one server and so the lookup does not work.


              Here is the error that occurs:


                New missing/unsatisfied dependencies:      service jboss.naming.context.java.module.RoleManager.RoleManagerWeb.env.ejb:IDMService.IDMServiceEJB."LdapService!de.thm.mnd.idmservice.ldapIntegration.ejb.LdapServiceRemote" (missing) dependents: [service jboss.naming.context.java.module.RoleManager.RoleManagerWeb.env."de.thm.mnd.roleManagement.jsf.PersonSearchBean".ldapService]


              At the end there is another message:

              newly corrected services:

                    service jboss.naming.context.java.module.RoleManager.RoleManagerWeb.env.ejb:IDMService.IDMServiceEJB."LdapService!de.thm.mnd.idmservice.ldapIntegration.ejb.LdapServiceRemote" (new available)


              I tried the lookup similar to the notation you did the lookup for bean MainEjbClient34AppBean.


              Here´s the structure of my project:

              IDMService (EAR)

              - IDMServiceEJB (EJBModule)

                   - de.thm.mnd.idmservice.ldapIntegration.ejb

                            -LdapService (Bean)

                            -LdapServiceRemote (Interface)

              Second EAR:

              Rolemanager (EAR)

              - RoleManagerEJB

              - RoleManagerWeb

                   - de.thm.mnd.roleManagement.jsf

                        - PersonSearchBean (JSF Managed Bean)

              The PersonSearchBean in the RoleManagerWeb wants to do the lookup in this way


                  LdapServiceRemote ldapService;


              The RoleManagerWeb project contains the jboss-client.jar. The IDMServiceEJB contains the jboss-ejb-client.xml in the src-folder.

              Do you have any ideas?

              Thanks a lot!!

              Bye Nicole