1 2 Previous Next 15 Replies Latest reply on Apr 25, 2008 11:18 AM by Scott Stark

    JBMETA-6, JBMETA-25 resolved jndi name

    Scott Stark Master

      I still cannot get a definitive view of the jndi name to use for the resolved jndi name output from the resolving deployers because the default jndi policy is not used in the metadata layer. I resolve an ejb link to the approriate JBossSessionBeanMetaData, but its determineJndiName() result does not match what the BaseSessionProxyFactory ends up using. Here the MappedReferenceMetaDataResolverDeployer sees the resolvedJndiName to be HelloWorldBean (defaulting to the ejb-name), while the BaseSessionProxyFactory uses the PackagingBasedJndiBindingPolicy default of ee5client-test/HelloWorldBean/remote:

      2008-04-23 11:07:17,658 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (RMI TCP Connection(4)-127.0.0.1) Processing unit=ee5client-test.jar, structure:
      ee5client-test.ear
      
      +ee5client-test-client.jar
      ++@EJB(helloWorldService) -> mappedName=null| resolvedJndiName=HelloWorldBean
      
      +ee5client-test.jar
      ++EjbEndpoint:ejbName=HelloWorldBean,ejbClass=org.jboss.test.ee5client.ejb.HelloWorldBean,BusinessRemotes: [org.jboss.test.ee5client.ejb.HelloWorldService]
      ++EjbEndpoint:ejbName=MessageReplierBean,ejbClass=org.jboss.test.ee5client.ejb.MessageReplierBean
      
      ...
      
      2008-04-23 11:07:18,672 DEBUG [org.jboss.ejb3.ProxyFactoryHelper] (RMI TCP Connection(4)-127.0.0.1) Obtaining JNDI name from policy org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy
      2008-04-23 11:07:18,690 DEBUG [org.jboss.ejb3.session.BaseSessionProxyFactory] (RMI TCP Connection(4)-127.0.0.1) Binding proxy for HelloWorldBean in JNDI at ee5client-test/HelloWorldBean/remote
      
      


      The jndi names of an ejb need to be available to the resolving deployer so that the metadata can be used as the defining set of info for references and dependencies.

      The metadata needs to have the org.jboss.ejb3.jndipolicy.DefaultJndiBindingPolicy interface with ejb3 providing the implementations. The metadata needs to be able to load the implementation as part of its determineJndiName behavior.

      The RemoteBindingMetaData change Alexey made was for the legacy ejb2x detached invoker bindings. The equivalent in the ejb3 container is sitting off in some aop config that is not available via the JBossMetaData info. I'm not sure if one can specify alternate jndi bindings for the remoting layer there or not.


        1 2 Previous Next