Q1: I want to know that which one is correct .
1). the client released with EJB interface class.
2). the client released with EJB stub class.
3). the client released with EJB interface class and get stub class after lookup from JNDI.
Q2: Do I need to update the client when I update the EJB component.
Q2: What changed before lookup from JNDI and after that from the viewpoint of client.
There is no "stub", there is a client container
built using configuration downloaded from the server.
You need your interfaces on the client.
If the interfaces or supporting classes change
in an incompatible way then yes.
e.g. Serialization for supporting classes
or you want to access a new method on the interface.