ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド
FUJITSU Software

33.2.2 セションBeanの初期化パラメタの設定

Apcoordinatorで作成したアプリケーションの動作を設定するパラメタを初期化パラメタと呼びます。初期化パラメタの一覧は13.3 初期化パラメタを参照してください。初期化パラメタの指定方法は2通りあります。

初期化パラメタuji.infoPathに設定ファイルフォルダを指定する必要があります。設定ファイルフォルダはApcoordinatorの設定ファイルを置くフォルダです。複数のセションBeanが同じ設定ファイルフォルダを共有することはできません。セションBeanごとに異なるフォルダとするために、以下を設定ファイルフォルダとして指定することを推奨します。

/[パッケージ階層]/[クラス名]_inf

ここで、[パッケージ階層]はセションBeanクラスのパッケージに沿ったフォルダ階層、[クラス名]はセションBeanクラスのクラス名です。例えば、セションBeanクラスがejboffice.ejb.OfficeBeanなら、設定ファイルフォルダは/ejboffice/ejb/OfficeBean_infとします。

33.2.2.1 デプロイメント記述 (ejb-jar.xml)

デプロイメント記述はEJBの構成や設定を記述するXMLファイルです。

EJBの構成や設定はアノテーションで記述することもできます。必要な情報をすべてアノテーションで記述した場合は、デプロイメント記述は不要です。初期化パラメタはgetInitParametersメソッドかデプロイメント記述に記述します。アノテーションでは記述できません。

デプロイメント記述の詳細は、以下の規約を参照してください。

以下は、リモートビジネスインタフェースを使ったステートフルセションBeanのデプロイメント記述の例です。太字は、J2EE (EJB 2.1)と異なる部分です。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0"> <enterprise-beans> <session> <!-- 名前を指定 --> <ejb-name>OfficeBean</ejb-name> <!-- リモートビジネスインタフェースを指定 --> <business-remote>ejboffice.ejb.Office</business-remote> <!-- セションBeanクラスを指定 --> <ejb-class>ejboffice.ejb.OfficeBean</ejb-class> <!-- ステートフルセションBeanであることを指定 --> <session-type>Stateful</session-type> <!-- エンタープライズBean環境として、初期化パラメタlogLevelを指定 --> <env-entry> <env-entry-name>uji/logLevel</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>10</env-entry-value> </env-entry> </session> </enterprise-beans> </ejb-jar>

33.2.2.2 metadata-complete="true"を指定する場合の記述

ejb-jarタグにmetadata-complete="true"を指定した場合はアノテーションが無視されます。この場合、アノテーションの代わりにデプロイメント記述でEJBの構成や設定を記述する必要があります。Apcoordinatorが提供するセションBeanのスーパークラス(UjiSimpleStatelessBean、UjiSimpleStatefulBean、および、そのスーパークラスであるUjiSimpleSessionBean)はアノテーションを利用して設定を記述しているため、その設定をデプロイメント記述に記述する必要があります。スーパークラスに記述されているアノテーションの内容についてはAPIリファレンスを参照してください。

以下はステートフルセションBeanのデプロイメント記述の例です。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
  metadata-complete="true"
  version="3.0">
  <enterprise-beans>
    <session>
      <ejb-name>OfficeBean</ejb-name>
      <business-remote>ejboffice.ejb.Office</business-remote>
      <ejb-class>ejboffice.ejb.OfficeBean</ejb-class>
      <session-type>Stateful</session-type>
      <init-method>
<create-method>
<method-name>create</method-name>
</create-method>
<bean-method>
<method-name>create</method-name>
</bean-method>
</init-method>
<remove-method>
<bean-method>
<method-name>remove</method-name>
</bean-method>
</remove-method> <env-entry> <env-entry-name>uji/logLevel</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>10</env-entry-value> </env-entry> <resource-env-ref>
<resource-env-ref-name>sessionContext</resource-env-ref-name>
<resource-env-ref-type>javax.ejb.SessionContext</resource-env-ref-type>
<injection-target>
<injection-target-class>ejboffice.ejb.OfficeBean</injection-target-class>
<injection-target-name>sessionContext</injection-target-name>
</injection-target>
</resource-env-ref>
<post-construct>
<lifecycle-callback-method>postConstruct</lifecycle-callback-method>
</post-construct >
<pre-destroy>
<lifecycle-callback-method>preDestroy</lifecycle-callback-method>
</pre-destroy>
<post-activate>
<lifecycle-callback-method>postActivate</lifecycle-callback-method>
</post-activate>
<pre-passivate>
<lifecycle-callback-method>prePassivate</lifecycle-callback-method>
</pre-passivate> </session> </enterprise-beans> </ejb-jar>

ステートレスセションBeanの場合は、init-method、remove-method、post-activate、pre-passivateは記述しません。