37 Enterprise JavaBeansとコンポジット・アプリケーションの統合
この章の内容は次のとおりです。
-
Oracle JDeveloperでのEnterprise JavaBeansサービスの作成
ノート:
Enterprise JavaBeans 3.0およびEnterprise JavaBeans 2.0の参照(つまり、Enterprise JavaBeans 2.0 Beanをコールする場合)はサポートされています。ただし、Enterprise JavaBeans 2.0のサービス(つまり、Enterprise JavaBeans 2.0 Beanを使用してコールされる場合)はサポートされていません。
37.1 Enterprise JavaBeansバインディングとSOAコンポジット・アプリケーションの統合の概要
Enterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法には、次の2つのオプションがあります。
-
Javaインタフェースを使用する方法(インタフェースの定義にWSDLファイルを使用しない)
-
SDOベースのEJBを使用する方法(インタフェースの定義にWSDLファイルを使用する)
この章では、両方のオプションについて説明します。
JavaインタフェースとSOAコンポジット・アプリケーションの統合には、Springサービス・コンポーネントも使用できます。Springサービス・コンポーネントの使用方法の詳細は、「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。
37.1.1 Javaインタフェースを使用した統合
Enterprise JavaBeansとOracle SOA Suiteの統合にはJavaインタフェースを使用できるため、WSDLファイルの定義は不要です。このタイプの統合は、次のオブジェクトをサポートします。
-
ネイティブJavaオブジェクト
-
Java Architecture for XML Binding
JavaインタフェースはSDOインタフェースとは異なります。SDOインタフェースは、XMLが中心のサービス・コンポーネント(Oracle BPEL Process Manager、Oracle Mediatorなど)を対象としているため、WSDLファイルに定義されます。Javaインタフェースを使用する場合、SDOパラメータは不要です。
この統合を定義するには、「Javaインタフェース・ベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法」で説明するように、Oracle JDeveloperの「EJBサービスの作成」ダイアログを使用します。このオプションでは、WSDLファイルを使用する必要はありません。完了すると、次の例に示すように、相互作用がinterface.java
エントリを介してcomposite.xml
ファイルに定義されます。Javaインタフェース・クラスは、接続コンポーネントが使用するWSDLファイルと互換性がある必要があります(つまり、メッセージがBPELコンポーネントに送信される場合)。BPELサービスはWSDLによって定義されるため、Javaインタフェース・クラスにはそのWSDLとの互換性が必要です。
<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 TopLinkソリューション・ガイド』および「Spring Frameworkを使用したSOAコンポジット・アプリケーションへの統合」を参照してください。
37.1.2 SDOベースのEJBを使用した統合
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パラメータを渡します。
図37-1に概要を示します。
この統合を定義するには、「SDOベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法」で説明するように、Oracle JDeveloperの「EJBサービスの作成」ダイアログを使用します。このオプションでは、WSDLファイルを使用する必要があります。完了すると、次の例に示すように、WSDL相互作用がinterface.wsdl
エントリを介してcomposite.xml
ファイルに定義されます。
<service name="PortfolioService">
<interface.wsdl
interface="http://bigbank.com/#wsdl.interface(PortfolioService)" />
<binding.ejb javaInterface="java.class.ejb.com" serviceId="PortfolioService"
jarLocation="soaejb.jar"/>
37.2 SDOベースのEnterprise JavaBeansアプリケーションの設計
この項では、Enterprise JavaBeansアプリケーション設計ステップの高レベルな概要を示します。詳細は、次のドキュメントを参照してください。
-
Oracle Application Development FrameworkによるFusion Webアプリケーションの開発
-
Oracle JDeveloperオンライン・ヘルプ目次にある次のトピック
-
Enterprise JavaBeans
-
Enterprise JavaBeansおよびJava永続性API (JPA)のSDO
ヘルプにアクセスするには、Oracle JDeveloperで「ヘルプ」→「目次」の順に選択します。
-
37.2.1 SDOコンパイラを使用したSDOオブジェクトの作成方法
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サービス・バインディングを処理するには、次のタスクを実行する必要があります。
-
「WSDLチューザ」ダイアログでこのWSDLファイルを参照して選択しますが、このダイアログには、「EJBサービスの作成」ダイアログの「WSDL URL」フィールドからアクセスできます(「Oracle JDeveloperでのEnterprise JavaBeansサービスの作成」を参照)。
-
「BC4Jサービス・ランタイム」ライブラリをSOAプロジェクトに追加します。このライブラリを追加するには、プロジェクトをダブルクリックし、「プロジェクト・プロパティ」ダイアログで「ライブラリとクラスパス」を選択してライブラリを追加します。これで、ビジネス・ロジックを設計できる状態になります。
詳細は、Oracle JDeveloperオンライン・ヘルプのEnterprise JavaBeans/JPA用のSDOに関するトピックを参照してください(SDOサービス・インタフェースの作成方法の手順も含まれています)。
-
37.2.2 セッションBeanを作成してSDOオブジェクトをインポートする方法
セッションBeanを作成してSDOオブジェクトをインポートするには:
- 「セッションBean作成」ウィザードを使用して、単純なセッションBeanを作成します。このウィザードの使用方法の詳細は、Oracle JDeveloperオンライン・ヘルプのセッションBeanの作成に関するトピックを参照してください。
- 「プロジェクト・プロパティ」ダイアログで、SDOオブジェクトをプロジェクトにインポートします。
- ロジックおよび必要なインポート・ファイルとライブラリ・ファイルを追加します。特に、
Commonj.sdo.jar
ファイルをインポートする必要があります。JARファイルは、「ライブラリとクラスパス」ダイアログで追加できます。このダイアログにアクセスするには、プロジェクトをダブルクリックし、「プロジェクト・プロパティ」ダイアログで「ライブラリとクラスパス」を選択します。これで、ロジックを設計できる状態になります。 - メソッドをリモート・インタフェースに公開します。
37.2.3 プロファイルおよびEARファイルの作成方法
プロファイルおよびEARファイルを作成するには:
- 「プロジェクト・プロパティ」ダイアログで、Enterprise JavaBeansのJARプロファイルを作成します。
- 「アプリケーション・プロパティ」ダイアログで、アプリケーション・レベルのEARファイルを作成します。
37.2.4 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>
図37-2に、SDOロジックが定義されているセッションBeanのコード例を示します。
37.2.5 Webサービス注釈の使用方法
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のみです。
表37-1に、使用する注釈を説明します。
表37-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") |
次の例は、注釈を使用した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); }
37.3 Oracle JDeveloperでのEnterprise JavaBeansサービスの作成
この項では、Oracle JDeveloperでEnterprise JavaBeans参照バインディング・コンポーネントまたはEnterprise JavaBeansサービス・バインディング・コンポーネントを作成する方法について説明します。Enterprise JavaBeansサービスを使用すると、Enterprise JavaBeansアプリケーションでOracle SOA Suiteと通信できるようになり、Oracle SOA SuiteでリモートのEnterprise JavaBeansと通信できるようになります。
この項では、次のタイプの統合を作成する方法について説明します。
-
Javaインタフェースを使用した統合
-
SDOインタフェースを使用した統合
37.3.1 Javaインタフェース・ベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法
Javaインタフェース・ベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの間では、次のタイプの統合を作成できます。
-
SOAコンポジット・アプリケーションからのJavaインタフェース・ベースのEnterprise JavaBeansの起動
-
Javaインタフェースを使用したEnterprise JavaBeansからのSOAコンポジット・アプリケーションの起動
Javaインタフェース・ベースのEnterprise JavaBeansをSOAコンポジット・アプリケーションに統合するには:
37.3.2 SDOベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの統合方法
SDOベースのEnterprise JavaBeansとSOAコンポジット・アプリケーションの間では、次のタイプの統合を作成できます。
-
SOAコンポジット・アプリケーションからのSDOベースのEnterprise JavaBeansの起動
-
SDOパラメータを使用したEnterprise JavaBeansからのSOAコンポジット・アプリケーションの起動
SDOベースのEnterprise JavaBeansをSOAコンポジット・アプリケーションに統合するには:
-
SOAコンポジット・エディタでSOAコンポジット・アプリケーションに移動します。
-
「コンポーネント」ウィンドウの「テクノロジ」セクションで、「EJB」アイコンを表37-3に示す適切なスイムレーンにドラッグします。
表37-3 EJBサービスに対するスイムレーン
起動対象 EJBサービスをドラッグするスイムレーン SOAコンポジット・アプリケーションからのSDOベースのEnterprise JavaBeansの起動
外部参照
SDOパラメータを使用したEnterprise JavaBeansからのSOAコンポジット・アプリケーションの起動
公開されたサービス
「EJBサービスの作成」ダイアログが表示されます。
-
「インタフェース」セクションで、「WSDL」をクリックします。
-
EJBサービスをドラッグしたスイムレーンに応じて、表37-4に示すステップを参照してください。
-
環境に適した値を入力します。「EJBサービス」アイコンをドラッグしたスイムレーンに応じて、表示されるフィールドが異なります。表37-5に詳細を示します。
表37-5 「EJBサービスの作成」ダイアログ
フィールド 値 名前
デフォルトの値をそのまま使用するか、別の名前を入力します。
タイプ
次の値が表示されます。
-
このアイコンを「外部参照」スイムレーンにドラッグした場合は、「参照」と表示されます。
-
このアイコンを「公開されたサービス」スイムレーンにドラッグした場合は、「サービス」と表示されます。
バージョン
ノート: このフィールドは、「EJBサービス」アイコンを「外部参照」スイムレーンにドラッグした場合のみ表示されます。
サポートするEJBのバージョンをEJB2またはEJB3 (デフォルト選択)から選択します。「インタフェース」リストで「WSDL」を選択した場合は、「EJB3」のみを選択できます。
インタフェース
「WSDL」を選択します。
JNDI名
ノート: このフィールドは、「EJBサービス」アイコンを「外部参照」スイムレーンにドラッグした場合のみ表示されます。
Enterprise JavaBeansのJNDI名を入力します。
Jarファイル
「検索」アイコンをクリックし、「SDOベースのEnterprise JavaBeansアプリケーションの設計」で作成したEJB JARファイルを選択します。JARチューザ・ダイアログでは、現在のプロジェクト・ディレクトリのSCA-INF/libサブディレクトリで起動されるJARファイルを検索して表示します。JARファイルには、インタフェース・クラスおよび任意のサポート対象クラスが含まれます。
ノート: 現在のプロジェクトの外部にあるJARファイルを選択する場合、Oracle JDeveloperは、現在のプロジェクトのSCA-INF/libディレクトリにあるJARファイルのコピーを作成します。プロンプトが表示されたら、「OK」をクリックして承認します。
Javaインタフェース
「参照」アイコンをクリックして「クラス・ブラウザ」ダイアログを起動し、以前に作成したEnterprise JavaBeansインタフェースの完全修飾Javaクラス名を選択します。このクラスは、選択したJARファイルに存在している必要があります。JARファイルを指定しない場合、クラスは現在のプロジェクト・ディレクトリの/SCA-INF/classesサブディレクトリ内にあるとみなされます。
ノート: 「Jarファイル」フィールドを使用する場合、「アプリケーション」メイン・メニューから「プロジェクト・プロパティ」→「ライブラリとクラスパス」→「JAR/ディレクトリの追加」を選択して、新規JARファイルをプロジェクトに追加する必要はありません。
WSDL URL
ノート: WSDLファイルの生成前に、必ず、「Webサービス・ノートの使用方法」の説明に従ってEnterprise JavaBeansインタフェースのノートを作成しておいてください。
右側にある2番目のアイコンをクリックして、Enterprise JavaBeansインタフェースを表すWSDLファイルを生成します。
「SDOコンパイラを使用したSDOオブジェクトの作成方法」の説明に従ってOracle JDeveloperでSDOオブジェクトを作成した場合は、このオプションで自動的に生成されたWSDLファイルを必ず選択してください。
ポート・タイプ
ポート・タイプを選択します。
コールバック・ポート・タイプ
コールバック・ポート・タイプを選択します(非同期サービスの場合)。
-
-
「OK」をクリックします。
37.4 Oracle SOA Suiteを起動するEnterprise JavaBeansクライアントの設計
この項では、Oracle SOA Suiteを起動するEnterprise JavaBeansクライアントの設計方法について説明します。
37.4.1 Oracle SOA Suiteを起動するJavaインタフェース・ベースのクライアントの作成方法
標準のEnterprise JavaBeansクライアントを使用します。次の例に詳細を示します。
InitialContext ic = new InitialContext(jndiProps); SimpleEjb svc = (SimpleEjb) ic.lookup("PassthroughRef"); String result = svc.addBreadCrumb("RemoteTest");
37.4.2 SDO-Enterprise JavaBeansサービスの起動方法
Enterprise JavaBeansからSDO - Enterprise JavaBeansサービスを起動するには、クライアント・ライブラリを使用する必要があります。Enterprise JavaBeansクライアントを設計するには、次のガイドラインに従ってください。
-
JNDIツリーから
SOAServiceInvokerBean
を検索します。 -
SOAServiceFactory
のインスタンスを取得し、ファクトリにEnterprise JavaBeansサービス・インタフェースのプロキシを返すように要求します。 -
クライアント側のEnterprise JavaBeansの起動ライブラリ(
$FMW_HOME/soa/soa/modules/oracle.soa.fabric_11.1.1/fabric-client.jar
またはOracle JDeveloperホーム・ディレクトリまたはOracle WebLogic Serverにある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
ライブラリを参照する必要があります。次のコードは、その一例を示しています。serviceFactory.createService
のMyTestEJBService
パラメータを指定してサービスIDの完全なパスを指定する必要があります(たとえば、"default/MyTestProject!1.0/MyTestEJBService"
)。完全なパスが指定されていない場合、EJBException
-
Could
not locate
the
service
エラーが表示されます。
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("complete_path/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();
37.5 Enterprise JavaBeansロールの指定
Java EEアプリケーションからSOAコンポジット・アプリケーションを起動するために必要なロール名を指定するには、ロール名をEnterprise JavaBeansサービス構成に追加します。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>
37.6 資格証明ストア・フレームワークでのEnterprise JavaBeansバインディングのサポートの構成
この項では、資格証明ストア・フレームワークでEnterprise JavaBeansバインディングのサポートを構成する方法について説明します。
37.6.1 資格証明ストア・フレームワークでのEnterprise JavaBeansバインディングのサポートの構成方法
すべてのEnterprise JavaBeansバインディングでは、サービス・データ・オブジェクト(SDO)のEnterprise JavaBeansバインディングのみではなく、JNDIユーザー・アクセス資格証明を格納するための資格証明ストア・フレームワーク(CSF)の使用がサポートされています。
Oracle Enterprise Manager Fusion Middleware Controlでは、Enterprise JavaBeansバインディングの次のJNDIプロパティを編集できます。
-
java.naming.factory.initial
-
java.naming.provider.url
-
java.naming.dns.url
-
java.naming.factory.url.pkgs
-
java.naming.factory.url.pkgs
-
java.naming.security.authentication
-
java.naming.security.protocol
-
java.naming.security.principal
-
java.naming.security.crendentials
-
oracle.jps.credstore.map
-
oracle.jps.credstore.key
37.6.1.1 資格証明ストア・フレームワークでEnterprise JavaBeansバインディングのサポートを構成するには:
これらのプロパティを編集するには、Oracle Enterprise Manager Fusion Middleware Controlで次のステップを実行します。
-
Enterprise JavaBeansバインディング・コンポーネントを含むSOAコンポジット・アプリケーションを右クリックします。
-
「サービス/参照プロパティ」を選択します。
-
Enterprise JavaBeansバインディング・コンポーネントを選択します。
-
「プロパティ」タブをクリックします。
-
適切なプロパティを設定します。
37.6.1.2 oracle.jps.credstore.mapおよびoracle.jps.credstore.keyプロパティを指定する手順:
プロパティoracle.jps.credstore.map
およびoracle.jps.credstore.key
を指定して、CSFマップにJNDIルックアップのプリンシパル/資格証明を格納することをお薦めします。プロパティとしてユーザー名/パスワードを直接格納するのはセキュアではありません。
-
Oracle Enterprise Manager Fusion Middleware Controlで、次のいずれかに移動して、「資格証明」ページを表示します。
-
(アプリケーションがOracle WebLogic Serverにデプロイされている場合)「Domain」→「セキュリティ」→「資格証明」の順に選択します。
または
-
(アプリケーションがWebSphere Application Serverにデプロイされている場合)「セル」→「セキュリティ」→「Application」→「ポリシー」の順に選択します。
-
-
新規マップを追加するには、「マップの作成」を選択します。
-
マップをクリックして、
oracle.jps.credstore.map
のキー・エントリを追加します。