The EJBMetaData interface allows a client to obtain the enterprise Bean's meta-data information.
I found the following additional information in some forum:
Question: Still, I don't understand what is the ejbMetaData purpose. Why I can't do it in such way?
Context ctx = getInitialContext(); EJBHome home = (EJBHome) ctx.lookup(...); Class interface = home.getClass();
Answer: The reason that you cannot perform a lookup on the home interface and then use reflection on that is as follows... When you get the Class from the interface (using getClass), this will actually return the Class of the Home interface STUB not the home interface itself. Therefore any attempt to retrieve Methods as they are named in the interface will throw an exception. To do this properly you must get the interface Class from the ejbMetaData, introspect this to get the relevant methods, then invoke them on the remote object reference to the EJB.