この図は、EJB 3.0ステートフル・セッションBeanを起動するサーブレットまたはJavaクライアント、およびEJBクライアントを示しています。EJBコンテナには、リモート・コンポーネント・インタフェースおよびBeanインスタンスがあります。リモート・コンポーネント・インタフェースCart
は、@Remote
でアノテーションが付けられたPlain Old Java Interfaceです。BeanインスタンスCartBean
は、@Stateful
でアノテーションが付けられたPlain Old Java Objectです。Beanインスタンスは、オプションのメソッドinitialize
に@PostConstruct
でアノテーションを付けて、そのメソッドを、コンテナがこのEJBのインスタンスの作成後に起動するメソッドとして指定します。Beanインスタンスは、オプションのメソッドdoneShopping
に@Remove
でアノテーションを付けて、そのメソッドを、コンテナがEJBの特定のインスタンスを削除するために起動するメソッドとして指定します。ホーム・インタフェースはありません。EJBコンテナがインスタンス化を処理します。サーブレットまたはJavaクライアントは、JNDIを使用してCart
のインスタンスを"java:comp/env/Cart
"でルックアップします。EJBクライアントは、Cart
インスタンス変数に@EJB
でアノテーションを付けることにより、リソース・インジェクションを使用します。どちらの場合も、EJBコンテナがインスタンス化を処理し、ナローイングは不要です。どちらのクライアントも、Cart
インタフェースを使用して、addItem
などのメソッドをCartBean
に対して起動できます。終了すると、クライアントはCart
のメソッドdoneShopping
を起動します。