Hi,
Master
EJB by Monson Haefel describes this in pretty good detail.. Given below is the excerpt from the book..
The narrow() method only needs to be used when a remote reference to an
EJB home or EJB object is returned without a specific Remote interface type.
This occurs in six circumstances:
1) When a remote EJB home reference is obtained using the javax.naming.Context.lookup() method:
2)When a remote EJB object reference is obtained using the javax.ejb.Handle.getEJBObject() method:
3)When a remote EJB home reference is obtained using the javax.ejb.HomeHandle.getEJBHome() method:
4) When a remote EJB home reference is obtained using the javax.ejb.EJBMetaData.getEJBHome() method:
5) When a remote EJB object reference is obtained from a collection returned
by a remote home interface finder method:
6) When a wide remote EJB object type is returned from any business method.
Here is a hypothetical example:
The PortableRemoteObject.narrow() method is not required when the
remote type is specified in the method signature. This is true of the create() methods and find methods in remote home interfaces that return a single bean.
Hope this helps clear the doubt
cheerz
krish