This question has been asked once here EJB 3 Session Bean Design for Simple CRUD, and I just want to ask more in depth questions about this design. I already tried to ask th
1.- Your stateless bean is exposing the interface GenericCrudService (the view is what the application server registers), for that reason you use
@EJB
private GenericCrudService myEJB;
If you have multiple implementations of this interface, you can add the ejb name to the annotation for disambiguation:
@EJB(name="GenericCrudServiceBean")
private GenericCrudService myEJB;
In EJB 3.1, Session Bean without interface are exposing something called a No-Interface View. These session beans can be used only locally.