This is a very fundamental question on EJBs and their clients - what
all should go into the client jar of an ejb?

I know for sure that just the remote and home interface classes of the
ejb are sufficient on the client's classpath to work with an EJB on a
totally different server, but I dont understand the logic behind it.
If the client has to pass its object parameters over the network to
the server where the ejb bean is located, should the container
generated stub not be present on the client's classpath? After the
client does the JNDI lookup of the ejb home on the server, how does it
serialize and pass the parameters over the network if the container
generated stub is not present?

Any help would be greatly appreciated. Pointers to material on the
internet which explain this/related things in detail would be a great

Thank you,