We have covered a lot of ground in this chapter. We have seen that session beans are an EJB technology for encapsulating business logic. Session beans can be either stateless or stateful. We had our first examples of using metadata annotations in our beans. We looked at packaging and deploying session beans using Ant scripts. We showed how a client running outside an EJB container would invoke a session bean using JNDI. We also showed how a client running in an Application Client Container can use dependency injection instead of JNDI to invoke a session bean.
We described the lifecycle for both stateless and stateful session beans and looked at examples of session bean lifecycle callback methods