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のコード例を示します。