Enterprise JavaBeans Beanを使用したSDOタイプの定義方法

Enterprise JavaBeans BeanでSDOタイプを定義する必要があります。次の例で詳細を示します。

注意:

defineをコールする場所が重要な場合があります。Remote Method Invocation (RMI)マーシャリングが必要になる前に、適切なヘルパー・コンテキストにタイプを定義する必要があります。EclipseLink SDO実装によって、アプリケーション名またはクラス・ローダーでヘルパー・インスタンスに索引付けされます。

Enterprise JavaBeansメソッドを起動したときに、EclipseLink SDOランタイムでアプリケーション名を使用できるようになります。EclipseLink SDOは、キーとしてアプリケーション名を使用してコンテキストを検索します。アプリケーション名が参照可能な場合は、タイプを必ず定義してください。Enterprise JavaBeansの静的ブロックの初期化時に、アプリケーション名は作成されません。したがって、静的ブロックにdefineを配置すると、デフォルトのアプリケーション名ベースのコンテキストを使用している場合は機能しません。アプリケーション名を初期化する方法の1つは、weblogic-ejb-jar.xmlファイルを使用して、3つ以上のインスタンスBeanを割り当てることです。

InputStreamReader reader = new InputStreamReader(url.openStream());
StreamSource source = new StreamSource(reader);
List<SDOType> list = ((SDOXSDHelper) XSDHelper.INSTANCE).define(source, null);

weblogic-ejb-jar.xmlファイルは、デプロイメントjarに追加する必要があるディスクリプタ・ファイルです。weblogic-ejb-jar.xmlファイルは、セッションBeanを作成すると自動的に作成されます。このファイルは、次の例に示すエントリを追加して変更する必要があります。

<?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar
 http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"
                  xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar">

    <weblogic-enterprise-bean>
    <ejb-name>HelloEJB</ejb-name>
    <stateless-session-descriptor>
      <pool>
        <initial-beans-in-free-pool>2</initial-beans-in-free-pool>
      </pool>
    </stateless-session-descriptor>
  </weblogic-enterprise-bean>

    </weblogic-ejb-jar>

図38-2に、SDOロジックが定義されているセッションBeanのコード例を示します。

図38-2 SDOロジックが定義されているセッションBean

図38-2の説明が続きます
「図38-2 SDOロジックが定義されているセッションBean」の説明