I am a JBoss/Distributed Java newbie and there is something I do not quite understand about j2ee clients. In the cmp example provided, one packages the Client application (roster-app-client.jar) into the EAR file in order to be able to run it externally. I tried it a second time omitting the roster-app-client from the EAR but when attempting to run the client, a javax.naming.NameNotFoundException is thrown with this error "RosterClient not bound" Why do we have to bind the client to the server? I understand that we need to use the JBoss JNDI implementation to look up the SessionBeans but why do we need an entry for the Client? Isn't the client independant of the remote application it is invoking (In this case a SessionBean)?