Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-6273

Remote EJB-JNDI lookup fails

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • 2.2.1
    • None
    • OpenEJB
    • Security Level: public (Regular issues)
    • None
    • Windows 7

    Description

      I have created a simple project that defines a Remote Stateless EJB:

      @Remote
      public interface BeanService {
      public String hello(String name);
      }

      @Stateless
      public class BeanImpl implements BeanService {
      @Resource(name="who")
      private String who;
      public String hello(String name) {
      return MessageFormat.format("Hello

      {0}

      from

      {1}

      .", name, who);
      }
      }

      I also created the deployment descriptor and plan files:

      ejb-jar.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <ejb-jar
      version="3.0"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
      http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

      <enterprise-beans>

      <session>
      <ejb-name>BeanImplA</ejb-name>
      <mapped-name>BeanImplA</mapped-name>
      <business-remote>sample.BeanService</business-remote>
      <ejb-class>sample.BeanImpl</ejb-class>
      <env-entry>
      <env-entry-name>who</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>BeanImplA</env-entry-value>
      </env-entry>
      </session>

      <session>
      <ejb-name>BeanImplB</ejb-name>
      <mapped-name>BeanImplBB</mapped-name>
      <business-remote>sample.BeanService</business-remote>
      <ejb-class>sample.BeanImpl</ejb-class>
      <env-entry>
      <env-entry-name>who</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>BeanImplBB</env-entry-value>
      </env-entry>
      </session>

      </enterprise-beans>

      </ejb-jar>

      openejb-jar.xml:

      <?xml version="1.0" encoding="windows-1252"?>
      <openejb-jar
      xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2"
      xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
      xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
      xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
      http://openejb.apache.org/xml/ns/openejb-jar-2.2 http://geronimo.apache.org/schemas-2.2/openejb-jar-2.2.xsd">

      <sys:environment>

      <sys:moduleId>
      <sys:groupId>sample</sys:groupId>
      <sys:artifactId>multiple-ejbs</sys:artifactId>
      <sys:version>1.0.0</sys:version>
      <sys:type>jar</sys:type>
      </sys:moduleId>

      </sys:environment>

      <enterprise-beans>
      <session>
      <ejb-name>MyBeanA</ejb-name>
      <jndi-name>MyBeanA</jndi-name>
      </session>
      <session>
      <ejb-name>MyBeanB</ejb-name>
      <jndi-name>MyBeanBB</jndi-name>
      </session>
      </enterprise-beans>

      </openejb-jar>

      And a simple web service class to test the deployed EJB:

      @WebService(
      name="SampleWS",
      portName="SampleWS",
      serviceName="SampleWS")
      @Stateless()
      public class SampleWS {

      private InitialContext ic;

      @PostConstruct
      protected void postConstruct() {
      try

      { ic = new InitialContext(); }

      catch (NamingException ex)

      { ex.printStackTrace(); }

      }

      @WebMethod
      public void lookup(@WebParam String name) {
      try

      { System.out.println("Looking up " + name); BeanService bean = (BeanService) ic.lookup(name); System.out.println(bean.hello(name)); }

      catch (Exception ex)

      { System.err.println("Error: " + ex.getMessage()); }

      }

      }

      I start geronimo with debug level logging and deploy the application:

      2012-02-14 18:12:39,855 INFO [startup] Undeploying app: C:\Users\204071044\AppData\Local\Temp\geronimo-deployer983143051956019168.tmpdir\multiple-ejbs-1.0.0.jar
      2012-02-14 18:12:39,903 INFO [DirectoryMonitor] Hot deployer notified that an artifact was removed: sample/multiple-ejbs/1.0.0/jar
      2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultStatelessContainer, type=Container, provider-id=Default Stateless Container)
      2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultStatefulContainer, type=Container, provider-id=Default Stateful Container)
      2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultSingletonContainer, type=Container, provider-id=Default Singleton Container)
      2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultBMPContainer, type=Container, provider-id=Default BMP Container)
      2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultCMPContainer, type=Container, provider-id=Default CMP Container)
      2012-02-14 18:12:40,683 INFO [config] Configuring enterprise application: sample/multiple-ejbs/1.0.0/jar
      2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImplA: EjbDeployment(deployment-id=multiple-ejbs/BeanImplA)
      2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImplB: EjbDeployment(deployment-id=multiple-ejbs/BeanImplB)
      2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImpl: EjbDeployment(deployment-id=multiple-ejbs/BeanImpl)
      2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb SampleWS: EjbDeployment(deployment-id=multiple-ejbs/SampleWS)
      2012-02-14 18:12:40,761 INFO [config] Enterprise application "sample/multiple-ejbs/1.0.0/jar" loaded.
      2012-02-14 18:12:41,416 INFO [JAXWSServiceBuilder] Configuring EJB JAX-WS Web Service: SampleWS at /SampleWS/SampleWS
      2012-02-14 18:12:43,601 INFO [startup] Assembling app: C:\Users\204071044\AppData\Local\Temp\geronimo-deployer2964695379050213700.tmpdir\multiple-ejbs-1.0.0.jar
      2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplA) --> Ejb(deployment-id=multiple-ejbs/BeanImplA)
      2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplBB) --> Ejb(deployment-id=multiple-ejbs/BeanImplB)
      2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplRemote) --> Ejb(deployment-id=multiple-ejbs/BeanImpl)
      2012-02-14 18:12:43,805 INFO [startup] Jndi(name=SampleWSLocalBean) --> Ejb(deployment-id=multiple-ejbs/SampleWS)
      2012-02-14 18:12:43,805 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImplB, ejb-name=BeanImplB, container=DefaultStatelessContainer)
      2012-02-14 18:12:43,820 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImplA, ejb-name=BeanImplA, container=DefaultStatelessContainer)
      2012-02-14 18:12:43,836 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImpl, ejb-name=BeanImpl, container=DefaultStatelessContainer)
      2012-02-14 18:12:43,836 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/SampleWS, ejb-name=SampleWS, container=DefaultStatelessContainer)
      2012-02-14 18:12:43,836 INFO [startup] Deployed Application(path=C:\Users\204071044\AppData\Local\Temp\geronimo-deployer2964695379050213700.tmpdir\multiple-ejbs-1.0.0.jar)
      2012-02-14 18:12:44,023 INFO [ModuleDeployer] Deploying module: addressing-1.5.2 - file:/C:/Users/204071044/Software/DRMS/2.0/geronimo-tomcat6-javaee5-2.2.1/repository/org/apache/axis2/addressing/1.5.2/addressing-1.5.2.mar
      2012-02-14 18:12:44,210 INFO [SupportedModesServiceImpl] Portlet mode 'edit' not found for portletId: '/plugin.Deployment!-87374526|0'

      I tried various combinations of JNDI name to lookup this EJB with no success. According to the documentation, the name should be

      {deploymentId} {interfaceType.annotationName}

      , so in this case, "multiple-ejbs/BeanImplARemote" should work for example. However, the output is an error:

      Looking up multiple-ejbs/BeanImplARemote
      Error: multiple-ejbs/BeanImplARemote

      Attachments

        1. multiple-ejbs.zip
          6 kB
          Daniel Cavalcanti

        Activity

          People

            Unassigned Unassigned
            dhcavalcanti Daniel Cavalcanti
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: