The new features of JavaEE 5, JSF and EJB3 work great together, and Seam is an application framework which does it easily. It introduces us to two new additions to default contexts of components, which are the long running business process context and the conversation context, which is preserved during multiple user requests. Here I will concentrate on how the things have changed from EJB2 and on better integration of JSF and EJB3.

Seam does it using annotations. We'll start by defining an Enity. I will discuss only prominent annotations:

You can see how Seam makes it really easy to glue our presentation with the business logic,
as now we can use the Seam name of the components directly to denote the classes anywhere
in the Seam application.
Suppose a method
methodX() in the component
SessionBeanClass could be invoked by the following expression in the view(jsp,xhtml, etc.):
#{abc.methodX}