So, there is an EJB deployed on Weblogic server and there are 1000 clients who are using this EJB. Each one of this client will have a Client Jar file generated by Weblogic and each of this client was compiled with this Weblogic's Client Jar file.
Tommorrow if this same EJB is deployed in Websphere, a new Client Jar file generated by Websphere(which will have different stub classes files bcos the name of the stub classes itself can be different) will have to be sent to all these 1000 clients and all the clients need to be recompiled (since the stub class files are needed at compile time).
So every time the EJB container changes, all clients need to be recompiled with new Client jar file having new stub classes.
Oh no....I hate EJB bcos clients depend on the server. Write once Deploy anywhere and recompile all ur clients with new Stub class files.
But why can't the stub class files be downloaded dynamically at runtime as stated in Ed Roman EJB1.0 (not the new EdRoman for EJB2.0) in the chapter on Java RMI(section
ownloadable implementations)? If that were the case the client would only require the 2 Interface class files for compilation and won't depend on any server.