Prima crei un'interfaccia annotandola come @Local e/o @Remote, dipende se vuoi utilizzare il componente da altri componenti in locale o in remoto:

codice:
@Local
public interface ShoppingCart{
  
  //Aggiungi un oggetto al carrello
  public void add(it.html.shop.Product x);
  
  //Calcola il totale
  public double totalAmount( );
  
  //Restituisci la lista di prodotti
  public java.util.Collection getList( );
  
  //Restituisce il nome del carrello
  public java.lang.String getCartName( );
}
Dopodiche' la estendi con una classe annotata come @Stateful, implementando concretamente i metodi con la logica di business desiderata:

codice:
@Stateful
public class StatefulSessionShoppingCart implements ShoppingCart{
...
}
Come letture di approfondimento, dai un occhiata ai seguenti link:

EJB 3.0
http://java.html.it/articoli/leggi/2464/ejb-30

Logica ShoppingCart (in EJB 2.0):
http://java.html.it/guide/lezione/34...-session-bean/