I have quite a few doubts about deployment descriptors in EJB. I assume that the ejb-jar.xml is a standard one as it is dealt in the spec.
1.Why hasn't Sun standardised the other xmls - like the one we use to give the jndi-names. It differs from vendor to vendor.
2.When I just package a jar with only ejb-jar.xml, and do a lookup with the name of the EJB, how does it work? does the vendor himself give the bean a jndi-name? if so, is there a standard to this?
3.can the jndi-name be the same for local and remote lookup?
Each naming service has its own characteristics with respect to what kind of objects it is capable of storing, whether it is persistent or transient, etc. JNDI itself does not dictate those characteristics. It merely provides an abstraction for accessing the naming service in a way that protects your code from the gory details of the specific naming service implementation as much as possible.
JNDI is not the naming service itself. It's just an API you use to access a naming service. Just like JDBC is not a database. It's just an API you use to access a database. Someone needs to make a conscious decision to expose a particular naming service, LDAP, CosNaming, etc. via JNDI.
This decision would typically be made by the implementors of the naming service, but could be done by a 3rd party as well.
So basically its for vendors usage and their comfort.