Please refer to the link
http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Fcejb_bindingsejbfp.html
following are the lines of interest from the above link :
The server always creates a default long-form binding for each EJB interface, including the no-interface view, and places them into the java:global, java:app, and java:module namespaces. A short-form binding is also created and placed into the java:global, java:app, and java:module namespaces, if the bean exposes only one interface, including the no-interface view. The default bindings are only created for session beans. They are not created for entity beans or message driven beans
The long-form binding pattern is java:global/<applicationName>/<moduleName>/<bean component name>!<fully qualified interface name>.
The short-form binding pattern is java:global/<applicationName>/<moduleName>/<bean component name>.
the link says short-form binding is only created when bean exposes ONLY ONE interface. my question is that if the bean exposes more than one interface than why cant we use short-form because even if there are multiple interfaces exposed BEAN COMPONENT NAME will be unique and there wont be any ambiguity of any kind . ? for e.g.
Application name : MyApp
Module name : MyEjb-jar.jar
Ejb Name : MyEjb
Interface names : MyEjbLocal, MyEjbLocal1
now CANT WE use short form like this
@EJB(lookup=java:global/MyApp/MyEjb-jar/MyEjb)
MyEjbLocal local;