エンタープライズBean環境(デプロイメント記述の<env-entry>で定義された値)はEJBDispatchContextのgetEnvironmentメソッドで取得できます。 以下は、ビジネスクラスのメソッドでエンタープライズBean環境を取得する例です。
import com.fujitsu.uji.ejb.bean.EJBDispatchContext; ... public Object search(DispatchContext context, HashMap data) { // エンタープライズBean環境java:comp/env/initialCountの値を取得します。 Integer i = (Integer)((EJBDispatchContext) context).getEnvironment("initialCount"); ... }
EJBDispatchContextのメソッドを利用するには、ビジネスクラスのメソッドの第1引数に与えられるDispatchContextをEJBDispatchContextにキャストします。
getEnvironmentメソッドの引数にはエントリの名前からjava:comp/env/を除いた部分を指定します。上記の例ではjava:comp/env/initialCountの値が取得されます。 指定された名前が未定義の場合はnullが返ります。
ポイント
一般的なEJBと同様にIniticalContextを使ってエンタープライズBean環境を取得することも可能です。ただし、getEnvironmentメソッドを使用した場合には、ローカル呼び出し機能で呼び出された場合でもエンタープライズBean環境が取得できます。