Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-16550

[GSS](7.2.z) WFLY-11848 - EJB WFLYEJB0473: JNDI bindings for ... ejb: is not correct when there is not an appName

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.2.2.CR1, 7.2.2.GA
    • None
    • EJB
    • None

      EJB WFLYEJB0473: JNDI bindings for ... ejb: is not correct when there is not an appName

      EAP 7.2 is logging the ejb: JNDI binding 'ejb:ejb-client/Hello!com.jboss.examples.ejb.Hello' which can be used by remote clients, but when the deployment is not an ear there is not an an AppName/ModuleName.

      the format is: ejb: appName / moduleName / distinctName / EJBName!EJBInterface

      For a deployment ejb-client.jar, the EJB it seeing appName == moduleName == ejb-client. But the way it has worked is if there is no sub deployment, then the appName is considered "", making the lookup: ejb:/ejb-client/Hello!com.jboss.examples.ejb.Hello

      If the ejb-client.jar was packaged in app.ear, then the lookup would be ejb:app/ejb-client/Hello!com.jboss.examples.ejb.Hello

      So all of that to say, there should be a / in the binding name when there is not an appName (ie not in an ear or not a subdeployment).

        @Resource(lookup = "java:app/AppName")
        private String appName;
        @Resource(lookup = "java:module/ModuleName")
        private String moduleName;
      

      https://docs.jboss.org/author/display/WFLY/EJB+invocations+from+a+remote+server+instance

      INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-5) WFLYEJB0473: JNDI bindings for session bean named 'Hello' in deployment unit 'deployment "ejb-client.jar"' are as follows:
      
      	java:global/ejb-client/Hello!com.jboss.examples.ejb.Hello
      	java:app/ejb-client/Hello!com.jboss.examples.ejb.Hello
      	java:module/Hello!com.jboss.examples.ejb.Hello
      	java:jboss/exported/ejb-client/Hello!com.jboss.examples.ejb.Hello
      	ejb:ejb-client/Hello!com.jboss.examples.ejb.Hello
      	java:global/ejb-client/Hello
      	java:app/ejb-client/Hello
      	java:module/Hello
      

      org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor

                  // log EJB's ejb:/ namespace binding
                  final String ejbNamespaceBindingName = sessionBean.isStateful() ? ejbNamespaceBindingBaseName + "!" + viewClassName + "?stateful" : ejbNamespaceBindingBaseName + "!" + viewClassName;
                  logBinding(jndiBindingsLogMessage, ejbNamespaceBindingName);
      

        1. app.ear
          15 kB
        2. ejb-client.jar
          10 kB
        3. my.war
          7 kB

              chaowan@redhat.com Chao Wang
              rhn-support-bmaxwell Brad Maxwell
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: