この章では、Enterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法について説明します。統合には、サービス・データ・オブジェクト(SDO)パラメータまたはJavaインタフェースを使用します。
項目は次のとおりです。
第36.1項「Enterprise JavaBeansバインディングとSOAコンポジット・アプリケーションの統合の概要」
第36.4項「Oracle SOA Suiteを起動するSDOベースのEnterprise JavaBeansクライアントの設計」
Enterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法には、次の2つのオプションがあります。
SDOベースのEJBを使用する方法(インタフェースの定義にWSDLファイルを使用する)
Javaインタフェースを使用する方法(インタフェースの定義にWSDLファイルを使用しない)
この章では、両方のオプションについて説明します。
JavaインタフェースとSOAコンポジット・アプリケーションの統合には、Springサービス・コンポーネントも使用できます。Springサービス・コンポーネントの使用方法の詳細は、第49章「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。
SDOを使用すると、物理的にどのようにアクセスされているかに関係なくビジネス・データを修正できます。SOAコンポジット・アプリケーションでSDOを使用する場合、特定のバックエンド・データ・ソースへのアクセス方法についての知識は不要です。つまり、静的または動的なプログラミング・スタイルを使用して、接続および切断されたアクセスを取得できます。
Enterprise JavaBeansは、Javaでエンタープライズ・アプリケーションを作成するためのコンポーネントベースの標準アーキテクチャに適合する、サーバー側ドメイン・オブジェクトです。これらのオブジェクトは、分散化されたセキュアなトランザクション・コンポーネントになります。
多くのOracle SOA Suiteインタフェースは、WSDLファイルで記述されます。Enterprise JavaBeansインタフェースは、Javaインタフェースで記述されます。両者の間の起動は、Oracle SOA SuiteのWSDLインタフェースに対応するEnterprise JavaBeansのJavaインタフェースによって、Oracle SOA Suiteで可能になります。
このインタフェースを介して、Oracle SOA Suiteは次の機能をサポートします。
Enterprise JavaBeans参照バインディング・コンポーネントを介した、SDOパラメータによるEnterprise JavaBeansの起動。このシナリオでは、SOAコンポジット・アプリケーションが外部のEnterprise JavaBeansアプリケーションにSDOパラメータを渡します。
Enterprise JavaBeansを介した、SDOパラメータによるEnterprise JavaBeansサービス・バインディング・コンポーネントの起動。このシナリオでは、Enterprise JavaBeansアプリケーションがSOAコンポジット・アプリケーションにSDOパラメータを渡します。
図36-1に概要を示します。
この統合を定義するには、第36.3.1項「SDOベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法」で説明するように、Oracle JDeveloperの「EJBサービスの作成」ダイアログを使用します。このオプションでは、WSDLファイルを使用する必要があります。完了すると、例36-1に示すように、WSDL相互作用がinterface.wsdl
エントリを介してcomposite.xml
ファイルに定義されます。
Enterprise JavaBeansとOracle SOA Suiteの統合には、Javaインタフェースも使用できます。この場合、WSDLファイルの定義は不要です。このタイプの統合は、次のオブジェクトをサポートします。
ネイティブJavaオブジェクト
Java Architecture for XML Binding(JAXB)
JavaインタフェースはSDOインタフェースとは異なります。SDOインタフェースは、XMLが中心のサービス・コンポーネント(Oracle BPEL Process Manager、Oracle Mediatorなど)を対象としているため、WSDLファイルに定義されます。Javaインタフェースを使用する場合、SDOパラメータは不要です。
この統合を定義するには、第36.3.2項「Javaインタフェース・ベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法」で説明するように、Oracle JDeveloperの「EJBサービスの作成」ダイアログを使用します。このオプションでは、WSDLファイルを使用する必要はありません。完了すると、例36-2に示すように、相互作用がinterface.java
エントリを介してcomposite.xml
ファイルに定義されます。
例36-2 interface.javaエントリを介したJavaインタフェースの定義
<service name="PortfolioService">
<interface.java interface="com.bigbank.services.MyService" />
binding.ejb uri="MyJNDI" ejb-version="EJB3"/>
Javaクラスは、ユーザー・インタフェースに使用できるプロジェクトのローダー内にある必要があります。このクラスは、デプロイされるSCA-INF
内にある必要があります(プロジェクト・クラスパス内のすべてのJARファイルがデプロイされるわけではありません)。これは通常、クラスがSCA-INF/classes
ディレクトリ内、またはSCA-INF/lib
ディレクトリのJAR内にある必要があることを意味します。ただし、システム・クラスパスのインタフェースも使用できます。
JAXBの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』および第49章「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。
この項では、Enterprise JavaBeansアプリケーション設計手順の高レベルな概要を示します。詳細は、次のドキュメントを参照してください。
『Oracle Fusion Middleware Programming Enterprise JavaBeans, Version 3.0 for Oracle WebLogic Server』
『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』
Oracle JDeveloperオンライン・ヘルプ目次にある次のトピック
Enterprise JavaBeans
Enterprise JavaBeans/JPA用のSDO
ヘルプにアクセスするには、Oracle JDeveloperで「ヘルプ」→「目次」の順に選択します。
SDOオブジェクトを作成するには、次のいずれかのオプションを選択します。
EclipseLinkは、Java開発者用のオープン・ソースのオブジェクト・リレーショナル・マッピング・パッケージです。EclipseLinkには、Javaオブジェクトをリレーショナル・データベースに格納したり、JavaオブジェクトをXML文書に変換するためのフレームワークが備わっています。
EclipseLinkを使用してSDOオブジェクトを作成します。EclipseLinkをインストール、構成および使用してSDOオブジェクトを作成する方法の手順は、次のURLを参照してください。
http://wiki.eclipse.org/EclipseLink/Installing_and_Configuring_EclipseLink
Oracle JDeveloperでは、JPAエンティティに対するSDOサービス・インタフェースを作成できます。この機能は、SOAコンポジット・アプリケーションのOracle Application Development Framework(ADF)サービス・バインディングで使用する場合により適していますが、SOAコンポジット・アプリケーションのEnterprise JavaBeansサービス・バインディングでもこの機能を使用できます。SDOサービス・インタフェース機能では、必要なWSDLおよびXSDファイルが生成されます。この機能を使用する場合、Enterprise JavaBeansサービス・バインディングを処理するには、次のタスクを実行する必要があります。
「SOAリソース・ブラウザ」ダイアログでこのWSDLファイルを参照して選択します。このダイアログには、「EJBサービスの作成」ダイアログの「WSDL URL」フィールドからアクセスできます(第36.3項「Oracle JDeveloperでのEnterprise JavaBeansサービスの作成」の説明を参照)。
「BC4Jサービス・ランタイム」ライブラリをSOAプロジェクトに追加します。このライブラリを追加するには、プロジェクトをダブルクリックし、「プロジェクト・プロパティ」ダイアログで「ライブラリとクラスパス」を選択してライブラリを追加します。これで、ビジネス・ロジックを設計できる状態になります。
詳細は、Oracle JDeveloperオンライン・ヘルプのEnterprise JavaBeans/JPA用のSDOに関するトピックを参照してください(SDOサービス・インタフェースの作成方法の手順も含まれています)。
セッションBeanを作成してSDOオブジェクトをインポートする手順は、次のとおりです。
セッションBean作成ウィザードを使用して、単純なセッションBeanを作成します。このウィザードの使用方法の詳細は、Oracle JDeveloperオンライン・ヘルプのセッションBeanの作成に関するトピックを参照してください。
「プロジェクト・プロパティ」ダイアログで、SDOオブジェクトをプロジェクトにインポートします。
ロジックおよび必要なインポート・ファイルとライブラリ・ファイルを追加します。特に、Commonj.sdo.jar
ファイルをインポートする必要があります。JARファイルは、「ライブラリとクラスパス」ダイアログで追加できます。このダイアログにアクセスするには、プロジェクトをダブルクリックし、「プロジェクト・プロパティ」ダイアログで「ライブラリとクラスパス」を選択します。これで、ロジックを設計できる状態になります。
メソッドをリモート・インタフェースに公開します。
プロファイルおよびEARファイルを作成する手順は、次のとおりです。
「プロジェクト・プロパティ」ダイアログで、Enterprise JavaBeansのJARプロファイルを作成します。
「アプリケーション・プロパティ」ダイアログで、アプリケーション・レベルのEARファイルを作成します。
Enterprise JavaBeans BeanでSDOタイプを定義する必要があります。例36-3に詳細を示します。
注意: define をコールする場所が重要な場合があります。Remote Method Invocation(RMI)マーシャリングが必要になる前に、適切なヘルパー・コンテキストにタイプを定義する必要があります。EclipseLink SDO実装では、アプリケーション名またはクラス・ローダーでヘルパー・インスタンスが索引付けされます。Enterprise JavaBeansメソッドを起動するとき、EclipseLink SDOランタイムでアプリケーション名を使用できます。EclipseLink SDOは、キーとしてアプリケーション名を使用してコンテキストを検索します。アプリケーション名が参照可能な場合は、タイプを必ず定義してください。Enterprise JavaBeansの静的ブロックの初期化時に、アプリケーション名は作成されません。したがって、静的ブロックにdefine を配置すると、デフォルトのアプリケーション名ベースのコンテキストを使用している場合は機能しません。アプリケーション名を初期化する方法の1つは、weblogic-ejb-jar.xml ファイルを使用して、3つ以上のインスタンスBeanを割り当てることです。 |
例36-3 SDOタイプの定義
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を作成すると自動的に作成されます。このファイルは、例36-4に示すエントリを追加して変更する必要があります。
例36-4 weblogic-ejb-jar.xmlファイル
<?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>
図36-2に、SDOロジックが定義されているセッションBeanのコード例を示します。
WSDLファイルを生成するには、Enterprise JavaBeansインタフェースで次のWebサービス注釈を使用する必要があります。これらの注釈の使用については、『JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.0』で説明されています。詳細は、次のURLを参照してください。
http://www.jcp.org/en/jsr/detail?id=224
また、Enterprise JavaBeansバインディング・レイヤーで現在サポートされているのは、ドキュメント/リテラルWSDLのみです。
表36-1で、使用する注釈について説明します。
表36-1 注釈
名前 | 説明 |
---|---|
|
Webサービス・メッセージ・パートおよびXML要素に対する個々のパラメータのマッピングをカスタマイズします。正規化されたメッセージ・ペイロードからの適切なXML要素にSDOパラメータをマップするために、両方の注釈が使用されます。 |
|
メソッドを、入力メッセージのみで出力メッセージのない一方向のWebサービス操作として指定します。この場合、Enterprise JavaBeansバインディング・コンポーネントは、リプライを想定しません。 |
|
Enterprise JavaBeansバインディング・コンポーネントに対して、デシリアライズ・オブジェクトをアンラップするかどうか、またはシリアル化の前にラッパーを作成する必要があるかどうかを指示します。 Enterprise JavaBeansインタフェースは、既存のWSDLから生成するか、または他の手段で取得できます。WSDLが存在しない場合は生成できます。 |
|
WSDLフォルトをJava例外にマップします。この注釈は、WSDLフォルト・メッセージで参照するグローバル要素から生成される、JAXBタイプのマーシャリング時に使用されるフォルト要素名を取得します。 |
|
WSDLに使用する @PortableWebService( targetNamespace = "http://hello.demo.oracle/", serviceName = "HelloService")
|
適切なメソッド・パラメータ注釈の追加 |
メッセージ要素およびタイプのWSDLへのマップ方法を制御するために追加します。たとえば、インタフェースが @WebMethod @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) |
|
スキーマを生成するかわりに既存のスキーマを使用するために、インタフェース・クラスに追加します。例: @SDODatabinding(schemaLocation = "etc/HelloService.xsd") |
例36-5に、注釈を使用したEnterprise JavaBeansインタフェースの例を示します。
例36-5 注釈を使用したEnterprise JavaBeansインタフェース
@Remote @PortableWebService(targetNamespace = "http://www.example.org/customer-example", serviceName = "CustomerSessionEJBService") @SDODatabinding(schemaLocation = "customer.xsd") public interface CustomerSessionEJB { @WebMethod(operationName="createCustomer") @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) @WebResult(targetNamespace = "http://www.example.org/customer-example", partName = "parameters", name = "customer") CustomerType createCustomer(); @WebMethod(operationName="addPhoneNumber") @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) @WebResult(targetNamespace = "http://www.example.org/customer-example", partName = "parameters", name = "customer") CustomerType addPhoneNumber(@WebParam(targetNamespace = "http://www.example.org/customer-example", partName = "parameters", name = "phone-number")PhoneNumber phNumber); }
この項では、Oracle JDeveloperでEnterprise JavaBeans参照バインディング・コンポーネントまたはEnterprise JavaBeansサービス・バインディング・コンポーネントを作成する方法について説明します。Enterprise JavaBeansサービスを使用すると、Enterprise JavaBeansアプリケーションでOracle SOA Suiteと通信できるようになり、Oracle SOA SuiteでリモートのEnterprise JavaBeansと通信できるようになります。
この項では、次のタイプの統合を作成する方法について説明します。
SDOインタフェースを使用した統合
Javaインタフェースを使用した統合
SDOベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの間では、次のタイプの統合を作成できます。
SOAコンポジット・アプリケーションからのSDOベースのEnterprise JavaBeansの起動
SDOパラメータを使用したEnterprise JavaBeansからのSOAコンポジット・アプリケーションの起動
SDOベースのEnterprise JavaBeansをSOAコンポジット・アプリケーションに統合する手順は、次のとおりです。
SOAコンポジット・エディタで、「EJBサービス」アイコンを表36-2に示す適切なスイムレーンにドラッグします。
「インタフェース」セクションで、「WSDL」をクリックします。
EJBサービスをドラッグしたスイムレーンに基づいて、表36-3に示す手順を参照してください。
環境に適した値を入力します。「EJBサービス」アイコンをドラッグしたスイムレーンに応じて、表示されるフィールドが異なります。表36-4に詳細を示します。
表36-4 「EJBサービスの作成」ダイアログ
フィールド | 値 |
---|---|
名前 |
デフォルトの値をそのまま使用するか、別の名前を入力します。 |
タイプ |
次の値が表示されます。
|
バージョン |
サポートするEJBのバージョンをEJB2またはEJB3 (デフォルト選択)から選択します。 注意: このフィールドは、「EJBサービス」アイコンを「外部参照」スイムレーンにドラッグした場合のみ表示されます。 |
インタフェース |
「WSDL」を選択します。 |
JNDI名 |
注意: このフィールドは、「EJBサービス」アイコンを「外部参照」スイムレーンにドラッグした場合のみ表示されます。 Enterprise JavaBeansのJNDI名を入力します。 |
Jarファイル |
「検索」アイコンをクリックし、第36.2項「SDOベースのEnterprise JavaBeansアプリケーションの設計」で作成したEJB JARファイルを選択します。「SOAリソース・ブラウザ」ダイアログでは、現在のプロジェクト・ディレクトリの 注意: 現在のプロジェクトの外部にあるJARファイルを選択する場合、Oracle JDeveloperは、現在のプロジェクトのSCA-INF/libディレクトリにあるJARファイルのコピーを作成します。プロンプトが表示されたら、「OK」をクリックして承認します。 |
JAVAインタフェース |
「参照」アイコンをクリックして「クラス・ブラウザ」ダイアログを起動し、以前に作成したEnterprise JavaBeansインタフェースの完全修飾Javaクラス名を選択します。このクラスは、選択したJARファイルに存在している必要があります。JARファイルを指定しない場合、クラスは現在のプロジェクト・ディレクトリの 注意: 「Jarファイル」フィールドを使用する場合、「アプリケーション」メイン・メニューから「プロジェクト・プロパティ」→「ライブラリとクラスパス」→「JAR/ディレクトリの追加」を選択して、新規JARファイルをプロジェクトに追加する必要はありません。 |
WSDL URL |
注意: WSDLファイルの生成前に、必ず、第36.2.5項「Webサービス注釈の使用方法」の説明に従ってEnterprise JavaBeansインタフェースの注釈を作成しておいてください。 右側にある2番目のアイコンをクリックして、Enterprise JavaBeansインタフェースを表すWSDLファイルを生成します。 第36.2.1項「SDOコンパイラを使用したSDOオブジェクトの作成方法」の説明に従ってOracle JDeveloperでSDOオブジェクトを作成した場合は、このオプションで自動的に生成されたWSDLファイルを必ず選択してください。 |
ポート・タイプ |
ポート・タイプを選択します。 |
コールバック・ポート・タイプ |
コールバック・ポート・タイプを選択します(非同期サービスの場合)。 |
「OK」をクリックします。
Javaインタフェース・ベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの間では、次のタイプの統合を作成できます。
SOAコンポジット・アプリケーションからのJavaインタフェース・ベースのEnterprise JavaBeansの起動
Javaインタフェースを使用したEnterprise JavaBeansからのSOAコンポジット・アプリケーションの起動
Javaインタフェース・ベースのEnterprise JavaBeansをSOAコンポジット・アプリケーションに統合する手順は、次のとおりです。
「EJBサービス」アイコンを適切なスイムレーンにドラッグします。
SOAコンポジット・アプリケーションからEnterprise JavaBeans参照バインディング・コンポーネントを起動するには、アイコンを「外部参照」スイムレーンにドラッグします。
Enterprise JavaBeansサービス・バインディング・コンポーネントからSOAコンポジット・アプリケーションを起動するには、アイコンを「公開されたサービス」スイムレーンにドラッグします。
「インタフェース」セクションで、「Java」をクリックします(まだ選択していない場合)。
「EJBサービスの作成」ダイアログに、図36-5で示すフィールドが表示されます。
表36-5に記載されている詳細を入力します。「EJBサービス」アイコンをドラッグしたスイムレーンに関係なく、表示されるフィールドは同じです。
表36-5 「EJBサービスの作成」ダイアログ
フィールド | 値 |
---|---|
名前 |
デフォルトの値をそのまま使用するか、別の名前を入力します。 |
タイプ |
次の値が表示されます。
|
バージョン |
サポートするEJBのバージョンをEJB2またはEJB3 (デフォルト選択)から選択します。 注意: このフィールドは、「EJBサービス」アイコンを「外部参照」スイムレーンにドラッグした場合のみ表示されます。 |
インタフェース |
「Java」を選択します。 |
JNDI名 |
Enterprise JavaBeansのJNDI名を入力します。 |
Jarファイル |
「検索」アイコンをクリックし、第36.2項「SDOベースのEnterprise JavaBeansアプリケーションの設計」で作成したEJB JARファイルを選択します。「SOAリソース・ブラウザ」ダイアログでは、現在のプロジェクト・ディレクトリの 注意: 現在のプロジェクトの外部にあるJARファイルを選択する場合、Oracle JDeveloperは、現在のプロジェクトのSCA-INF/libディレクトリにあるJARファイルのコピーを作成します。プロンプトが表示されたら、「OK」をクリックして承認します。 |
JAVAインタフェース |
次のいずれかのオプションを選択します。
|
「OK」をクリックします。
Enterprise JavaBeansからSDO - Enterprise JavaBeansサービスを起動するには、クライアント・ライブラリを使用する必要があります。Enterprise JavaBeansクライアントを設計するには、次のガイドラインに従ってください。
JNDIツリーからSOAServiceInvokerBean
を検索します。
SOAServiceFactory
のインスタンスを取得し、ファクトリにEnterprise JavaBeansサービス・インタフェースのプロキシを返すように要求します。
クライアント側のEnterprise JavaBeans起動ライブラリ(Oracle JDeveloperホーム・ディレクトリまたはOracle WebLogic Serverにあるfabric-ejbClient.jar
またはfabric-runtime.jar
ファイル)を、Enterprise JavaBeansクライアント・アプリケーションに組み込むことができます。たとえば、fabric-runtime.jar
ファイルをJDev_Home
\jdeveloper\soa\modules\oracle.soa.fabric_11.1.1
ディレクトリに格納できます。
Enterprise JavaBeansアプリケーションがOracle SOA Suiteと異なるJVMで実行されている場合、Enterprise JavaBeansアプリケーションは、ejbClient
ライブラリを参照する必要があります。
例36-6に例を示します。
例36-6 Enterprise JavaBeansクライアント・コード
Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); props.put(Context.PROVIDER_URL, "t3://" + HOSTNAME + ":" + PORT); InitialContext ctx = new InitialContext(props); SOAServiceInvokerBean invoker = (SOAServiceInvokerBean) ctx.lookup("SOAServiceInvokerBean#oracle.integration.platform.blocks.sdox.ejb.api. SOAServiceInvokerBean"); //-- Create a SOAServiceFactory instance SOAServiceFactory serviceFactory = SOAServiceFactory.newInstance(invoker); //-- Get a dynamice proxy that is essentially a remote reference HelloInterface ejbRemote = serviceFactory.createService("MyTestEJBService", HelloInterface.class); //-- Invoke methods Item item = (Item) DataFactory.INSTANCE.create(Item.class); item.setNumber(new BigInteger("32")); SayHello sayHello = (SayHello) DataFactory.INSTANCE.create(SayHello.class); sayHello.setItem(item); SayHelloResponse response = ejbRemote.sayHello(sayHello); Item reply = response.getResult();
Java EEアプリケーションからSOAコンポジット・アプリケーションを起動するために必要なロール名を指定するには、ロール名をEnterprise JavaBeansサービス構成に追加します。Enterprise JavaBeansサービスは、コール元のプリンシパルにセキュリティ・ロールがあるかどうかをチェックします。例36-7に詳細を示します。
例36-7 Enterprise JavaBeansロール
<service name="EJBService" ui:wsdlLocation="BPELEJBProcess.wsdl">
<interface.wsdl
interface="http://xmlns.oracle.com/EJBApplication/EJBProject/BPELEJBProcess#wsdl.int
erface(BPELProcess1)"callbackInterface="http://xmlns.oracle.com/EJBApplication/
EJBProject/BPELEJBProcess#
wsdl.interface(BPELEJBProcessCallback)"/>
<property name="rolesAllowed">Superuser, Admin</property>
<binding.ejb javaInterface="java.class.ejb.com" serviceId="EJBService"
jarLocation="soaejb.jar"/>
</service>
この項では、JNDIアクセスを構成する2つの方法について説明します。
JNDIアクセスを構成するには、次のガイドラインに従ってください。
外部JNDIツリーをローカル・サーバー・インスタンスにリンクするように外部JNDIプロバイダを構成して、ローカルの場合と同様にオブジェクトにアクセスできます。『Oracle Fusion Middleware Programming JNDI for Oracle WebLogic Server』を参照してください。
また、例36-8に示すように、Enterprise JavaBeans参照のプロパティとして、JNDI環境変数を指定することもできます。Enterprise JavaBeansバインディング・コンポーネントを使用すると、独自のマップを作成するか、またはデフォルトのEJBBC
バインディング・コンポーネント・マップを使用できます。EJBBC
を使用する場合、map
プロパティはオプションであることに注意してください。セキュリティ上の理由から、JNDIセキュリティ資格証明をCSFストアに格納し、例36-8に示すように参照する必要があります。
例36-8 Enterprise JavaBeans参照の環境変数
<property name= "java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</property> <property name="java.naming.provider.url">t3://host:7001</property> <property name="oracle.jps.credstore.map">default</property> <property name="oracle.jps.credstore.key">weblogic</property>
セキュリティ資格証明は、資格証明ストア・フレームワークに格納することもできます。詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。
デフォルトのEnterprise JavaBeans BC CSFマップを使用するかわりに、独自の資格証明ストア・フレームワーク(CSF)マップを作成する場合は、Domain_Home
/config/fmwconfig/
system-jazn.data.xml
ファイルを変更して、例36-9に示す権限をfabric-runtime.jar
権限付与のエントリに追加する必要があります。
例36-9 追加する権限
<class>oracle.security.jps.service.credstore.CredentialAccessPermission</class> <name>>context=SYSTEM,mapName=*,keyName=*</name> <actions>*</actions> </permission>
処理後にOracle WebLogic Serverを再起動する必要があります。
CSFの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。