| Oracle® Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発 12c (12.2.1) E70030-02 |
|
![]() 前 |
![]() 次 |
この付録の内容は次のとおりです。
Fusion Webアプリケーションのメタデータ・ファイルは、アプリケーションによって使用される構造化XMLファイルです。次の目的で使用されます。
アプリケーションのOracle ADFデータ・コントロールで使用できるパラメータ、メソッドおよび戻り値を指定します。
Oracle ADFバインディング・コンテキストのオブジェクトを作成し、それらのオブジェクトの実行時動作を定義します。
JSFおよびADF FacesのUIコンポーネントに関する構成情報を定義します。
Java EEアプリケーション・サーバーのアプリケーション構成情報を定義します。
ADFバインディングの場合、バインディング固有のエディタを使用して、バインディング・オブジェクトの実行時プロパティをカスタマイズできます。バインディング固有のエディタを開くには、ページ定義ファイルの「構造」ウィンドウを表示して、ポップアップ・メニューから「プロパティに移動」を選択します。
また、JDeveloperのXMLエディタでは、任意のメタデータ・ファイルの内容を参照および編集できます。これらのファイルを操作する最も簡単な方法は、「構造」ウィンドウと「プロパティ」ウィンドウを使用することです。「構造」ウィンドウで要素を選択し、「プロパティ」ウィンドウで(通常はドロップダウン・メニュー・オプションを選択して)その要素の属性値を定義します。この付録を使用して、Oracle ADF固有の要素の場合に選択できるオプションについて学習してください。
Oracle ADFメタデータ・ファイル間の関係により、モデル・データ・プロジェクトとユーザー・インタフェース・プロジェクト間の依存性が定義されます。これらの依存性は、各ファイルのXML要素内のファイル参照として定義されます。
図A-1は、ADFビジネス・コンポーネント・アプリケーション・モジュールをJSF Webページに対するサービス・インタフェースとして使用しているFusion Webアプリケーションで操作する可能性のあるXMLメタデータ・ファイルの階層構造を示しています。
図A-1 Fusion WebアプリケーションにおけるOracle ADFファイル階層の概要

ADFビジネス・コンポーネントを含むFusion Webアプリケーションの場合、データ・コントロール実装ファイルはアプリケーションに含まれます。データ・コントロール用の参照は、アプリケーション・モジュールおよびビュー・オブジェクトXMLコンポーネントのディスクリプタ・ファイルによって提供されます。これらのファイルはbc4j.xcfgファイルとともに、データ・コントロールに必要な情報を提供します。
1つのプロジェクトでADFビジネス・コンポーネントを使用し、別のプロジェクトでADFビジネス・コンポーネント以外のデータ・コントロールを使用するアプリケーションは、DataControls.dcxファイルと、サポート用の<sessionbeanname>.xmlファイルおよび<beanname>.xmlファイルを持つ場合があります。
Fusion Webアプリケーションの標準的な次のXML構成ファイルは、ユーザー・インタフェース・プロジェクトに表示されます。
adfm.xml: このファイルには、現在のプロジェクトで利用できるDataBindings.cpxファイルがリストされます。
詳細は、「adfm.xml」を参照してください。
DataBindings.cpx: このファイルには、ページ・マップ、ページ定義参照およびデータ・コントロール参照が含まれます。このファイルは、(「構造」ウィンドウまたは「データ・コントロール」パネルで)UIコンポーネントのデータ・バインディングを最初に作成したときに作成されます。DataBindings.cpxファイルでは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義します。バインディング・コンテキストは、アプリケーション全体にわたるバインディングおよびデータ・コントロールへのアクセスを提供します。DataBindings.cpxファイルには、各WebページのOracle ADFバインディングのメタデータを定義する<pagename>PageDef.xmlファイルへの参照も含まれます。
詳細は、「DataBindings.cpx」を参照してください。
<pagename>PageDef.xml: ページ定義XMLファイルです。これにより、WebページのUIコンポーネントがデータまたはデータ・コントロールと関連付けられます。ユーザーが「データ・コントロール」パネルまたは「構造」ウィンドウを使用して、新しいWebページを設計するたびに、JDeveloperによりこのファイルが作成されます。これらのXMLファイルには、WebページのUIコンポーネントにデータを移入するバインディングを作成するためのメタデータが含まれます。ADFバインディングを参照するすべてのWebページに対して、バインディング定義を含む専用のページ定義ファイルが必要です。
詳細は、「pageNamePageDef.xml」を参照してください。
JSFアプリケーションに必要とされる次の標準XML構成ファイルは、ユーザー・インタフェース・プロジェクトに表示されます。
web.xml: アプリケーション構成の一部は、Java EEアプリケーション・デプロイメント・ディスクリプタのweb.xmlの内容によって決定されます。web.xmlファイルでは、サーバーが認識する必要のあるアプリケーションのすべての設定を定義します。このファイルで、ADFBindingFilterを設定してOracle ADFデータ・バインディングを構成します。追加の実行時設定には、サーブレットの実行時パラメータと初期化パラメータ、カスタム・タグ・ライブラリの場所、およびセキュリティ設定が含まれます。
ADFデータ・バインディングとJSF構成オプションの詳細は、「web.xml」を参照してください。
ADF Facesアプリケーションでは通常、web.xml以外に構成ファイルの独自のセットが使用されます。詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のtrinidad-config.xmlでの構成に関する項を参照してください。
adfc-config.xml: ADFバインドなしタスク・フローの構成ファイル。構成ファイルには、バインドなしタスク・フローに格納されているアクティビティおよび制御フローに関するメタデータが含まれています。このファイルのデフォルト名はadfc-config.xmlですが、エンド・ユーザーはこの名前を変更できます。
詳細は、「adfc-config.xml」を参照してください。
task-flow-definition.xml: ADFバインド・タスク・フローの構成ファイル。構成ファイルには、バインド・タスク・フローに格納されているアクティビティおよび制御フローに関するメタデータが含まれています。このファイルのデフォルト名はtask-flow-defintion.xmlか、エンド・ユーザーが「ADFタスク・フローの作成」ダイアログで指定した名前にできます。複数のタスク・フロー定義ファイルを同一のアプリケーションに格納できます。
詳細は、「task-flow-definition.xml」を参照してください。
図A-2 は、ADFアプリケーション・モジュールをADFビジネス・コンポーネントに対するサービス・インタフェースとして使用しているWebアプリケーションで操作する可能性のあるXMLメタデータ・ファイルの階層構造を示しています。実行時には、これらのファイルから作成されたオブジェクトが次の順序で対話を行います。
ADFのデータ・バインドされたWebページに対する最初のリクエストが発生すると、サーブレットは、web.xmlファイルに設定されているOracle ADFサーブレット・フィルタのADFBindingFilterを登録します。
バインディング・フィルタにより、空のバインディング・コンテキストが作成されます。
ページがレンダリングされるとき、バインディング・フィルタはバインディング・コンテキストにこのページについて、対応するPageDef.xmlのロードを依頼します。
バインディング・コンテキストは、DataBindings.cpxファイルの<pagemap>要素による参照に従って<page>ファイルをロードし、バインディング・コンテナを作成します。
adfm.xmlファイルはDataBindings.cpxコンテンツをロードし、<pageDefinitionUsage>要素に対する<pagemap>要素参照に基づいて適切なPageDef.xmlを見つけます。
バインディング・コンテナのprepareModelフェーズは、関連するすべての実行可能ファイル(その大半はデフォルトでdeferredとマークされている)を準備し、リフレッシュします。
イテレータ・バインディングの実行には、bc4j.xcfgファイルのADFビジネス・コンポーネントに対して指定されたデータ・コントロール・ファクトリを通じて発見されたデータ・コントロールの名前付きメソッドが参照されます。
バインディング・コンテナは、マップされたWebページのpagenamePageDef.xmlファイルの<bindings>セクションに定義されたバインディングも作成します。
#{bindings}という式を使用した式言語(EL)に基づくADFバインディングへのWebページ参照が、そのページのバインディング・コンテナにアクセスすることで解決されます。
ページは、バインディング・コンテナのバインディングから使用可能なデータを取得します。
図A-2 ADF BCベースのWebアプリケーションにおけるOracle ADFファイル階層および構文図

adfm.xmlファイルには、実行時にデプロイされたアプリケーションに組み入れられている各設計時プロジェクトの、.cpx、.dcx、.jpxおよび.xcfgファイルのクラスパス相対パスが含まれています。adfm.xmlファイルは、動的に管理される「レジストリのレジストリ」として動作し、.cpx、.dcx、.jpxおよび.xcfgファイル(自身がメタデータのレジストリ)の迅速な検索に使用されます。
ファイル・レジストリは、ADFライブラリ・リソース・カタログのブラウズの実装や、ADFモデル・レイヤーの設計時、またマージや検索の実行中に幅広く使用されます。
開発者がページ上にバインディングを作成した場合、JDeveloperのプロジェクト・ソース・ツリーにメタデータ・ファイル(ページ定義など)が追加されます。その後adfm.xmlでそれぞれの場所を記録します。
プロジェクトが作成されると、adfm.xmlファイルはproject-root/adfmsrc/META-INF/adfm.xmlに配置されます。プロジェクト・レベルのアーカイブ・デプロイ・プロファイルでは、ファイル位置はMETA-INF/adfm.xmlとされます。
実行時、アプリケーション・クラスパスはスキャンされ、アプリケーションを構成する.cpxファイルのリストを作成します。次にアプリケーションが必要に応じて各.cpxをロードし、バインディング・コンテキストを作成します。ADFモデル・レイヤーの使用の詳細は、「「データ・コントロール」パネルの使用時の処理」を参照してください。
adfm.xmlファイルにより、次の4つのタイプのサブレジストリが現在記録されています。
DataBindingRegistry (.cpx)
DataControlRegistry (.dcx)
BusinessComponentServiceRegistry (.xcfg)
BusinessComponentProjectRegistry (.jpx)
.jpxファイルにはJDeveloperが設計時に使用して、ユーザーによるADFビジネス・コンポーネントを使ったデータ・モデル・プロジェクトの作成を可能にするための構成情報が含まれます。また、共有アプリケーション・モジュールが実行時に使用される方法を定義するメタデータも含まれます。共有アプリケーション・モジュールは同じFusion Webアプリケーションのデータ・モデル・プロジェクトからアクセスできるため、JDeveloperは、ADFビジネス・コンポーネント・プロジェクト構成ファイルにある共有アプリケーション・モジュールのスコープを保持します。
このファイルは、プロジェクトのsrcディレクトリに保存されています。たとえば、Oracle ADFのSummitサンプル・アプリケーションは、Model.jpxファイルを、Modelプロジェクトの.src/oracle/summit/modelサブディレクトリに保存します。
次の例では、サンプルのデフォルト.jpxファイルを表示します。
<JboProject
xmlns="http://xmlns.oracle.com/bc4j"
Name="Model"
Version="12.1.2.66.11"
SeparateXMLFiles="true"
PackageName="oracle.summit.model">
<DesignTime>
<Attr Name="_appModuleNames2"
Value="oracle.summit.model.services.BackOfficeAppModule"/>
<Attr Name="_jprName" Value="../../../../Model.jpr"/>
<Attr Name="_appModuleNames1"
Value="oracle.summit.model.services.CustomerSelfServiceAppModule"/>
<Attr Name="_appModuleNames0"
Value="oracle.summit.model.services.SummitAppModule"/>
<Attr Name="_jbo.TypeMapEntries" Value="Java"/>
<Attr Name="_NamedConnection" Value="summit_adf"/>
</DesignTime>
<Containee
Name="assoc"
PackageName="oracle.summit.model.entities.assoc"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_AS" Value="true"/>
</DesignTime>
</Containee>
<Containee
Name="entities"
PackageName="oracle.summit.model.entities"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_EO" Value="true"/>
<Attr Name="_VO" Value="true"/>
</DesignTime>
</Containee>
<Containee
Name="services"
PackageName="oracle.summit.model.services"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_AM" Value="true"/>
</DesignTime>
</Containee>
<Containee
Name="links"
PackageName="oracle.summit.model.views.links"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_VL" Value="true"/>
</DesignTime>
</Containee>
<Containee
Name="readonly"
PackageName="oracle.summit.model.views.readonly"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_VO" Value="true"/>
</DesignTime>
</Containee>
<Containee
Name="views"
PackageName="oracle.summit.model.views"
ObjectType="JboPackage">
<DesignTime>
<Attr Name="_VO" Value="true"/>
</DesignTime>
</Containee>
</JboProject>
bc4j.xcfgファイルには、アプリケーション・モジュール名に関するメタデータ情報、アプリケーション・モジュールが使用するデータベース接続、およびユーザーがアプリケーション・モジュールに対して構成した実行時パラメータが含まれています。
bc4j.xcfgファイルは、アプリケーション・モジュールのXMLコンポーネント定義に対して./commonと相対位置指定されるサブディレクトリにあります。同一のJavaパッケージ内の全アプリケーション・モジュールの構成はすべて、この同じファイルに保存されます。たとえば、Summit ADFサンプル・アプリケーションのModelプロジェクトの/Model/src/oracle/summit/model/services/commonディレクトリにあるbc4j.xcfgファイルを見ると、そのアプリケーション・モジュール用の構成があることがわかります。構成の編集の詳細は、「アプリケーション・モジュールのランタイム構成の変更方法」と「プール構成パラメータの設定」を参照してください。
例A-1に、Summit ADFサンプル・アプリケーションにあるサンプルのbc4j.xcfgファイルを示します。
例A-1 サンプルbc4j.xcfgファイル
<?xml version = '1.0' encoding = 'UTF-8'?>
<BC4JConfig version="11.1" xmlns="http://xmlns.oracle.com/bc4j/configuration">
<AppModuleConfigBag ApplicationName="oracle.summit.model.services.SummitAppModule">
<AppModuleConfig name="SummitAppModuleLocal" DeployPlatform="LOCAL" JDBCName="summit_adf" jbo.project="oracle.summit.model.Model" java.naming.factory.initial="oracle.jbo.common.
JboInitialContextFactory" ApplicationName="oracle.summit.model.services.SummitAppModule">
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.SummitAppModule"/>
</AppModuleConfig>
<AppModuleConfig name="SummitAppModuleShared" DeployPlatform="LOCAL" JDBCName="summit_adf" jbo.project="oracle.summit.model.Model" java.naming.factory.initial="oracle.jbo.common.JboInitialContextFactory"
ApplicationName="oracle.summit.model.services.SummitAppModule">
<AM-Pooling jbo.ampool.isuseexclusive="false" jbo.ampool.maxpoolsize="1"/>
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.SummitAppModule"/>
</AppModuleConfig>
</AppModuleConfigBag>
<AppModuleConfigBag ApplicationName="oracle.summit.model.services.CustomerSelfServiceAppModule">
<AppModuleConfig name="CustomerSelfServiceLocal" jbo.project="oracle.summit.model.Model" ApplicationName="oracle.summit.model.services.CustomerSelfServiceAppModule"
DeployPlatform="LOCAL" JDBCName="summit_adf">
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.CustomerSelfServiceAppModule"/>
</AppModuleConfig>
<AppModuleConfig name="CustomerSelfServiceShared" jbo.project="oracle.summit.model.Model" ApplicationName="oracle.summit.model.services.CustomerSelfServiceAppModule"
DeployPlatform="LOCAL" JDBCName="summit_adf">
<AM-Pooling jbo.ampool.maxpoolsize="1" jbo.ampool.isuseexclusive="false"/>
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.CustomerSelfServiceAppModule"/>
</AppModuleConfig>
</AppModuleConfigBag>
<AppModuleConfigBag ApplicationName="oracle.summit.model.services.BackOfficeAppModule">
<AppModuleConfig name="BackOfficeAppModuleLocal" jbo.project="oracle.summit.model.Model" ApplicationName="oracle.summit.model.services.BackOfficeAppModule" DeployPlatform="LOCAL" JDBCName="summit_adf">
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.BackOfficeAppModule"/>
</AppModuleConfig>
<AppModuleConfig name="BackOfficeAppModuleShared" jbo.project="oracle.summit.model.Model" ApplicationName="oracle.summit.model.services.BackOfficeAppModule" DeployPlatform="LOCAL" JDBCName="summit_adf">
<AM-Pooling jbo.ampool.maxpoolsize="1" jbo.ampool.isuseexclusive="false"/>
<Database jbo.TypeMapEntries="Java"/>
<Security AppModuleJndiName="oracle.summit.model.services.BackOfficeAppModule"/>
</AppModuleConfig>
</AppModuleConfigBag>
</BC4JConfig>
DataBindings.cpxファイルは、データ・コントロール使用名を、ビジュアル・エディタのWebページに初めてドロップしたときに、ユーザー・インタフェース・プロジェクト内に作成されます。DataBindings.cpxファイルでは、アプリケーション全体のOracle ADFバインディング・コンテキストが定義され、メタデータが提供されます。実行時には、このメタデータからOracle ADFバインディング・オブジェクトが作成されます。これは、ADFライブラリ・リソース・カタログのブラウズの実装により、また.cpxや.dcxの設計時および実行時のマージや検索により広く使用されます。データ・バインドUIコンポーネントをドキュメントに挿入した時点で、実行時にOracle ADFバインディング・オブジェクトにアクセスするバインディング式がページに存在するようになります。
DataBindings.cpxファイルは、ユーザー・インタフェース・プロジェクト・フォルダの/srcディレクトリにあります。ファイル・ノードをダブルクリックすると、XMLソース・エディタにバインディング・コンテキスト記述が表示されます。(バインディング・コンテキスト・パラメータを編集するには、「プロパティ」ウィンドウを使用して、「構造」ウィンドウで適切なパラメータを選択します。)
DataBindings.cpxファイルの最上位レベルの要素は<Application>です。次に例を示します。
<?xml version="1.0" encoding="UTF-8" ?>
<Application xmlns="http://xmlns.oracle.com/adfm/application"
version="11.1.1.56.60" id="DataBindings" SeparateXMLFiles="false"
Package="oracle.summit.view" ClientType="Generic">
図A-3に、Oracle ADFのSummitスタンドアロン・サンプル・アプリケーションにあるDataBindings.cpxファイルの構造定義を示します。
図A-3 DataBindings.cpxファイルの構造

子要素の使用方法は、次のとおりです。
<definitionFactories>には、実行時に個別のネームスペースに関連付けられるADFバインディング・オブジェクトを作成するためのファクトリ・クラスが登録されます。ファクトリ・クラスは、ADFバインディングのタイプ(タスク・フロー・バインディングなど)に関連付けられたネームスペースに固有です。
<pageMap>要素: すべてのユーザー・インタフェースURLと、対応するページ定義慣用名をマップします。このマップは、実行時にURLをそのページ定義にマップするために使用されます。
<pageDefinitionUsages>は、ページ定義慣用名(BindingContainerインスタンス名)を、対応するページ定義にマップします。id属性は、使用IDを示します。path属性は、ページ定義へのフルパスを示します。
<dataControlUsages>は、データ・コントロール慣用名(短縮名)と、それらに対応する.dcxまたは.xcfgファイルのデータ・コントロール定義エントリへのパスのリストを宣言します。
表A-1 に、DataBindings.cpxの各要素の属性を示します。
表A-1 DataBindings.cpxファイルの各要素の属性
| 要素の構文 | 属性 | 属性の説明 |
|---|---|---|
|
|
URI。ページ定義慣用名における実行可能要素の位置を識別します。 |
|
完全修飾クラス名。ページ定義慣用名オブジェクトを作成するファクトリ・クラスの位置を識別します。 |
|
|
|
ディレクトリへのフルパス。ユーザー・インタフェース・ページの場所を識別します。 |
|
一意の修飾子。ADFページ定義ファイルに出現するページ定義IDを指定します。ADFバインディング・サーブレットは、受信URLリクエストを検出し、 |
|
|
|
一意の修飾子。ADFページ定義ファイルに出現するページ定義IDを参照します。 |
|
完全修飾パッケージ名。ユーザー・インタフェース・ページのADFページ定義ファイルの場所を識別します。 |
|
|
|
一意の修飾子。 |
|
完全修飾パッケージ名。データ・コントロールの場所を識別します。 |
例A-2に、Summit ADFサンプル・アプリケーションにあるDataBindings.cpxファイルの構造を示します。
ADF実行可能定義ファクトリ(factory要素)はclassName属性により指定され、namespaceと関連付けられます。実行時、ファクトリ・クラスは、特定のページ定義に関連付けられるADFバインディング・コンテナで使用されるバインディング・オブジェクトの作成を導く実行可能定義オブジェクトを作成します。ファクトリは2個のDataBindings.cpxファイル要素を通じて、ページ定義を見つけます。この要素の1つは設計時に割り当てられたページ定義ID (usageId属性)にページURLをマップするpageMap要素で、もう1つはプロジェクトまたはプロジェクト・クラスパスのページ定義の場所にこのIDをマップするpageDefinitionUsages要素です。
さらに、ADFビジネス・コンポーネント・データ・コントロール(BC4JDataControl要素)は、id属性によって名前を指定されます。Package属性とConfiguration属性の組合せは、指定されたパッケージの./commonサブディレクトリ内でbc4j.xcfgファイルの場所を識別するために使用されます。該当する構成には、アプリケーション・モジュール名とユーザーが構成済の全ランタイム・パラメータに関する情報が含まれています。
例A-2 サンプルDataBindings.cpxファイル
<?xml version="1.0" encoding="UTF-8" ?>
<Application xmlns="http://xmlns.oracle.com/adfm/application"
version="11.1.1.56.60" id="DataBindings" SeparateXMLFiles="false"
Package="oracle.summit.view" ClientType="Generic">
<definitionFactories>
<factory nameSpace="http://xmlns.oracle.com/adf/controller/binding"
className="oracle.adf.controller.internal.binding.TaskFlowBindingDefFactoryImpl"/>
<dtfactory className="oracle.adf.controller.internal.dtrt.binding.BindingDTObjectFactory"/>
<factory nameSpace="http://xmlns.oracle.com/adfm/dvt"
className="oracle.adfinternal.view.faces.dvt.model.binding.FacesBindingFactory"/>
</definitionFactories>
<pageMap>
<page path="/index.jsf" usageId="oracle_summit_view_indexPageDef"/>
<page path="/Customers.jsff" usageId="oracle_summit_view_CustomersPageDef"/>
<page path="/orders/Orders.jsff"
usageId="oracle_summit_view_OrdersPageDef"/>
<page path="/carousel/InventoryControl.jsff" usageId="oracle_summit_view_InventoryControlTestPageDef"/>
</pageMap>
<pageDefinitionUsages>
<page id="oracle_summit_view_CustomersPageDef"
path="oracle.summit.view.pageDefs.CustomersPageDef"/>
<page id="oracle_summit_view_indexPageDef"
path="oracle.summit.view.pageDefs.indexPageDef"/>
<page id="oracle_summit_view_OrdersPageDef"
path="oracle.summit.view.pageDefs.OrdersPageDef"/>
<page id="oracle_summit_view_InventoryControlTestPageDef"
path="oracle.summit.view.pageDefs.InventoryControlPageDef"/>
</pageDefinitionUsages>
<dataControlUsages>
<BC4JDataControl id="BackOfficeAppModuleDataControl"
Package="oracle.summit.model.services"
FactoryClass="oracle.adf.model.bc4j.DataControlFactoryImpl"
SupportsTransactions="true" SupportsFindMode="true"
SupportsRangesize="true" SupportsResetState="true"
SupportsSortCollection="true"
Configuration="BackOfficeAppModuleLocal"
syncMode="Immediate"
xmlns="http://xmlns.oracle.com/adfm/datacontrol"/>
</dataControlUsages>
</Application>
pageNamePageDef.xmlファイルは、「データ・コントロール」パネルまたは「構造」ウィンドウを使用して、データバインドされたコンポーネントをWebページに挿入するたびに作成されます。これらのXMLファイルにより、アプリケーションの各WebページのOracle ADFバインディング・コンテナが定義されます。バインディング・コンテナは、ページ内のバインディングへのアクセスを提供します。データバインドされたWebページごとに1つのXMLファイルが割り当てられます。
注意:
DataBindings.cpxファイルは、JSFページを対応するページ定義ファイルにマップします。ページ定義ファイルまたはJSFページの名前を変更した場合、JDeveloperにより、DataBindings.cpxファイルが自動的にリファクタされることはありません。DataBindings.cpxファイルでページのマッピングを手動で更新する必要があります。
PageDef.xmlファイルは、ユーザー・インタフェース・プロジェクトの/src/viewディレクトリにあります。「アプリケーション」ウィンドウでは、「アプリケーション・ソース」ノードのビュー・パッケージ内にこのファイルが表示されます。ファイル・ノードをダブルクリックすると、XMLソース・エディタにページ記述が表示されます。ページ記述パラメータを編集するには、「プロパティ」ウィンドウを使用して、「構造」ウィンドウで適切なパラメータを選択します。
詳細は、「ページ定義ファイルでの作業」を参照してください。
ページ定義の生成方法は、単一値を戻すメソッドとコレクションを戻すメソッドでは大きな違いがあります。
PageDef.xmlファイルのトップレベルの要素は、<pageDefinition>です。
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
version="11.1.1.59.23" id="<pagename>PageDef"
Package="oracle.summit.view.pageDefs">
ここでのXMLネームスペース属性(xmlns)により、ADFバインディング・コンテナの実行時のバインド先となるURIを指定します。パッケージ名のみ編集可能であり、他のすべての属性はここに示したとおりの値に設定する必要があります。
次の例は、<pageDefinition>要素の子要素の階層を示しています。データ・コントロールを作成したビジネス・サービスごとに、独自の<AdapterDataControl>定義が割り当てられます。
<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition>
<parameters>
...
</parameters>
<executables>
...
</executables>
<bindings>
...
</bindings>
</pageDefinition>
子要素の使用方法は、次のとおりです。
<parameters>: ELでアクセス可能なページ・レベルのパラメータを定義します。これらのパラメータは、Webページ・リクエストに固有の情報を格納しており、バインディング式を通じてアクセスできます。
<executables>: ADFページ・ライフサイクルのprepareModelフェーズ中に実行される項目(メソッド、ビュー・オブジェクトおよびアクセッサ)のリストを定義します。実行されるメソッドは、<methodIterator>により定義されます。ライフサイクルでは、<executables>セクションにリストされた順序で実行処理が行われます。メソッドまたは操作が実行されるかどうかは、そのRefreshまたはRefreshCondition属性の値に依存します。データ・コントロールの組込み操作は、次の要素で定義されます。
<page>: ネストされたページの定義(バインディング・コンテナ)
<iterator>: DataControlsの名前付きコレクションの定義
<accessorIterator>: データ・コントロール階層のアクセッサを取得するための定義
<methodIterator>: 同じファイルのmethodActionにより定義された起動メソッドから戻されるイテレータを取得するための定義
<variableIterator>: バインディング・コンテナに対して宣言された変数を格納する内部イテレータ
<invokeAction>: 実行可能項目として起動されるメソッドの定義
注意:
アプリケーションで、Fusion Webアプリケーションのテクノロジ・スタックにあるADFコントローラ・モジュールを使用していない場合は、invokeActionのみを使用します。アプリケーションでADFコントローラ・モジュールを使用している場合は、「メソッド・コール・アクティビティの使用」に示すように、タスク・フローのメソッド・コール・アクティビティを使用することをお薦めします。
<bindings>: <executables>内のエントリを参照して、バインディングが属性レベルのデータを抽出または送信するコレクションを取得します。
表A-2 に、<pageDefinition>トップレベル要素の属性を示します。
表A-2 PageDef.xmlファイルの<pageDefinition>要素の属性
| 要素の構文 | 属性 | 属性の説明 |
|---|---|---|
|
|
コントローラがこの |
|
ポストバックが発生したときに、このbindingContainerで現在位置検証を有効化します。これにより、Web層の状態が特定ページのレンダリング状態と一致することが保証されます。 |
|
|
FindModeは旧リリース(10.1.2)でのみ使用します。初期準備の際に、このbindingContainerをfindModeで開始するかどうかを示します。 |
|
|
完全修飾パッケージ名。任意のバインディングの翻訳文字列を含むクラスを識別します。 |
|
|
データ検証が行われたかどうかを判断します。サポートされている値は次のとおりです。
たとえば、トレイン・コンポーネントなどのデータ検証を省略する必要がある場合には、この属性に値を設定しておくと便利です。詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のトレイン・モデルの作成方法に関する項を参照してください |
|
|
このバインディングおよび関連コンポーネントをレンダリングするかどうかを決定するため、実行時に解決されるEL式。 |
表A-3 に、<parameters>の子要素の属性を示します。
表A-3 PageDef.xmlファイルの<parameters>要素の属性
| 要素の構文 | 属性 | 属性の説明 |
|---|---|---|
|
|
|
|
一意の識別子。ADFバインディングにより参照できます。 |
|
|
バインディング・コンテナ内での変数の使用方法を次のように示します。
|
|
|
パラメータ値が変更可能であるかどうかを示します。パラメータ値の変更をアプリケーションに許可しない場合は、 |
|
|
デフォルト値。EL式を使用できます。 |
表A-4 に、PageDef.xmlの<executables>要素の属性を示します。
表A-4 PageDef.xmlファイルの<executables>要素の属性
| 要素の構文 | 属性 | 属性の説明 |
|---|---|---|
|
|
このバインディングによって定義されるその他のアクセッサを指定します。 |
|
イテレータのバインド先となるビューまたはアクションを指定します。 |
|
|
関連付けられたイテレータ(コレクション)のBeanのJava型を識別します。 |
|
|
|
|
|
コンポーネントがこのイテレータを介してデータに関連付けられているとき、およびポーリング・イベント・モードのときの、イベントのレートを指定します。 |
|
|
このイテレータ・バインディングにより参照されるコレクションを解析して、戻します。 |
|
|
一意の識別子。任意のADF値バインディングにより参照できます。 |
|
|
マスターとして機能するデータ・コレクションをアクセッサ・イテレータのディテール・コレクションにバインドする |
|
|
ADFビジネス・コンポーネント専用。ブール値により、コレクションがオブジェクト型であるかどうかを指定します。 |
|
|
バインドされたコレクションからフェッチする、範囲内のデータ・オブジェクトの数を指定します。レンジは、コレクション内のデータ・オブジェクトのサブセットにアクセスする際に使用できるウィンドウを定義します。通常は、「データ・コントロール」パネルからオブジェクトをドラッグすることでコンポーネントを作成すると、レンジ・サイズは25に設定されます。セット全体を使用する場合、またはページに表示されるデータ・オブジェクトの数を制限したい場合は、 |
|
|
どのようなときに実行可能項目を起動するかを指定します。
|
|
|
実行可能項目をリフレッシュするかどうかを決定するEL式。実行可能項目の |
|
|
実行可能ファイル間の依存性の処理に使用します。たとえば、別の実行可能ファイルの後にこの実行可能ファイルがリフレッシュされるように条件を設定できます。 |
|
|
ユーザーが値として指定した行数が結果セットから戻されるかどうかを決定する値を指定します。 ユーザーが |
|
|
イテレータがソート可能かどうかを指定します。 |
|
|
アプリケーションで、Fusion Webアプリケーションのテクノロジ・スタックにあるADFコントローラ・モジュールを使用していない場合は、 |
|
|
起動するアクションを指定します。任意の
|
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
|
|
|
|
|
|
|
関連付けられたイテレータ(コレクション)のBeanのJava型を識別します。 |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。JDeveloperの現在のリリースでは使用されません。 |
|
|
|
|
|
|
|
|
コンポーネントがこのイテレータを介してデータに関連付けられているとき、およびポーリング・イベント・モードのときの、イベントのレートを指定します。 |
|
|
このイテレータが関連付けられている |
|
|
ADFによる内部使用属性。 |
|
|
一意の識別子。任意のADF値バインディングにより参照できます。 |
|
|
EJBセッション・ファサード・データ・コントロールでは使用されません(ADFビジネス・コンポーネントでのみ使用されます)。 |
|
|
|
|
|
|
|
|
ページをリフレッシュした後の条件を指定します。 |
|
|
|
|
|
|
|
< |
|
一意の識別子。 |
|
コンポーネントがこのイテレータを介してデータに関連付けられているとき、およびポーリング・イベント・モードのときの、イベントのレートを指定します。 |
|
|
|
|
|
|
|
|
ページをリフレッシュした後の条件を指定します。 |
|
|
|
表A-5 に、PageDef.xml <bindings>要素の属性を示します。
表A-5 PageDef.xmlファイルの<bindings>要素の属性
| 要素の構文 | 属性 | 属性の説明 |
|---|---|---|
|
|
完全修飾パッケージ名。データ・コントロールの作成されるクラスを識別します。EJBセッション・ファサードの場合は、セッションBeanです。 |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
この |
|
|
自動的に構成された |
|
|
アクションのインスタンス名を指定します。 |
|
|
このバインディングが関連付けられている |
|
|
メソッド・アクション・バインディングの結果(一度 |
|
|
|
デフォルトで |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
ADS(アクティブ・データ・サービス)を使って実行される場合のコンポーネントのイベント戦略を指定します。次のいずれかを指定できます。 push poll ppr なし |
|
|
ADFによる内部使用属性。 |
|
|
これは、指定された値バインディングに対して |
|
|
ADFによる内部使用属性。 |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
|
デフォルトで |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
このブール・リスト・バインディングの静的値のリストにおいて、0(ゼロ)索引の値が |
|
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
ADFによる内部使用属性。 |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
この |
|
|
このリスト・バインディングをナビゲーション用とするか、値の静的リストとするか、またはLOV型のリストとするかを指定します。 |
|
|
このリスト・バインディングにNULL値を含めるかどうかを指定します。含める場合は、リストの最初または最後のどちらに表示するかを指定します。 |
|
|
リスト表示にNULL値を示すための |
|
< |
|
コンポーネントの更新ポリシーを識別します。有効な値は、 |
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
ADF Facesガント・チャート・コンポーネントのデータ・バインディングXMLをラップします。 |
|
< |
|
ゲージ・タイプを識別します。 |
|
ゲージのLEDスタイルを識別します。 |
|
|
コンポーネントの更新ポリシーを識別します。有効な値は、 |
|
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
ADF Faces |
|
< |
|
グラフ・タイプを識別します。 |
|
コンポーネントの更新ポリシーを識別します。有効な値は、 |
|
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
ADF Faces |
|
|
|
デフォルトで |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
ADFによる内部使用属性。 |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
この |
|
|
このリスト・バインディングをナビゲーション用とするか、値の静的リストとするか、またはLOV型のリストとするかを指定します。 |
|
|
この属性の値のよって、リスト・バインディングが実際の値( |
|
|
ユーザーが最近選択したアイテムをショートカットとして提供するときに、選択リストに表示するアイテム数を指定します。たとえば、フォームにサプライヤIDの選択リストを表示して、発注書を作りやすくすることができます。この例では、ユーザーは最近表示されたサプライヤのリストから選択できますが、このリストに表示される選択肢の数は、ユーザーが入力した値によって決定されます。デフォルトは0(ゼロ)で、選択リストには属性の値がすべて表示されます。 |
|
|
MRUリストのための識別子行になる |
|
|
このリスト・バインディングにNULL値を含めるかどうかを指定します。含める場合は、リストの最初または最後のどちらに表示するかを指定します。 |
|
|
リスト表示にNULL値を示すための |
|
|
バインドされたリスト・コンポーネントにレンダリングされる値の静的リストを定義します。 |
|
< |
|
コンポーネントの更新ポリシーを識別します。有効な値は、 |
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
ADFデータ視覚化地理マップ・コンポーネントに対するデータ・バインディングXMLをラップします。 |
|
|
|
完全修飾パッケージ名。データ・コントロールの作成されるクラスを識別します。EJBセッション・ファサードの場合は、セッションBeanです。 |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
起動されるメソッドが属しているクラスです。 |
|
|
この |
|
|
ADFによる内部使用属性。 |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
関連付けられたメソッドが起動されるJavaオブジェクト・インスタンスへのドット区切りのELパス。 |
|
|
|
|
|
|
|
|
この |
|
|
このアクションの起動前に、アクションでモデルの更新を必要とするかどうかを指定します。 |
|
|
関連付けられたメソッドにより戻される結果のELパス。 |
|
< |
|
コンポーネントの更新ポリシーを識別します。有効な値は、 |
|
ADFによる内部使用属性。 |
|
|
特定の値バインディングの |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
リスト表示にNULL値を示すための |
|
|
ADFデータ視覚化ピボット・テーブル・コンポーネントに対するデータ・バインディングXMLをラップします。 |
|
|
|
デフォルトで |
|
この属性は、後方互換性を目的としており、このバインディング定義のランタイムを実装するクラスを示します。旧バージョンのJDeveloperで使用します。 |
|
|
|
|
|
テスト用の内部使用属性。 |
|
|
特定の値バインディングの |
|
|
ADFによる内部使用属性。 |
|
|
階層タイプのバインディング(ツリー・ノードのタイプ定義)における多相化識別子の値を示します。この値により、多相ツリー・バインディングにレンダリングされるコレクションの特定行を、包含階層タイプのバインディングを使用してレンダリングするかどうかを指定します。 |
|
|
一意の識別子。任意のADFアクション・バインディングにより参照できます。 |
|
|
このバインディングが関連付けられている |
|
|
ADFツリー・コンポーネントで使用されるデータ・モデル。 |
adfc-config.xmlファイルは、ADF Fusion Webアプリケーション・テンプレートを使用してアプリケーションを作成するときにデフォルトでJDeveloperが作成するADFバインドなしタスク・フローのソース・ファイルです。デフォルトでは、JDeveloperは、adfc-config.xmlファイルを次のディレクトリに格納します。
application_root\ViewController\Web Content\WEB-INF
追加のバインドなしタスク・フローを作成すると、JDeveloperは、追加のバインドなしタスク・フローのソース・ファイルに次のファイル名を提案します。
adfc-configN.xml
ここでNは新しいバインドなしタスク・フローを作成するたびに増分する番号です。または、バインドなしタスク・フローのソース・ファイルに好きなファイル名を選択します。
バインドなしタスク・フローのソース・ファイルそれぞれに、バインドなしタスク・フローに追加したアクティビティのメタデータ、制御フロー・ルール、マネージドBeanが含まれ、エンド・ユーザーは、Fusion Webアプリケーションと連動してタスクを完了できます。
adfc-config.xmlファイルの有効なメタデータ・エントリを定義するXMLスキーマ定義ファイル(XSD)はadfc-config_1_0.xsdです。adfc-config_1_0.xsdファイルは、インストールしたJDeveloperの次のディレクトリにあるadf-controller-schema.jarファイルに格納されます。
jdev_install\oracle_common\modules\oracle.adf.model_12.1.2
JDeveloperのXSDビジュアル・エディタを使用してadfc-config_1_0.xsdファイルを表示します。このエディタを使用すると、adfc-config.xmlファイルの有効なメタデータ要素および属性を識別できます。
次の例は、ビュー・アクティビティ、制御フロー・ルールなどがまだ追加されていないバインドなしタスク・フローのソース・ファイルを示しています。
<?xml version="1.0" encoding="windows-1252" ?> <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2"> </adfc-config>
図A-4 に、ADFタスク・フローのadfc-config.xmlファイルに対するSummitサンプル・アプリケーションのダイアグラム・ビューを示します。例A-3に、図A-4で表示したバインドなしタスク・フローの対応するソース表示を示します。
バインドなしタスク・フローの詳細は、「ADFタスク・フローのスタート・ガイド」を参照してください。
図A-4 Summit ADFタスク・フロー・サンプル・アプリケーションのadfc-config.xmlファイルのダイアグラム・ビュー

例A-3 Summit ADFタスク・フロー・サンプル・アプリケーションのadfc-config.xmlファイルのソース・ビュー
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
<view id="index">
<page>/index.jsf</page>
</view>
<managed-bean id="__1">
<managed-bean-name>login</managed-bean-name>
<managed-bean-class>oracle.summit.bean.LoginBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean id="__2">
<managed-bean-name>WelcomePageBean</managed-bean-name>
<managed-bean-class>oracle.summit.bean.WelcomePageBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</adfc-config>
作成した最初のADFバインド・タスク・フローのソース・ファイルに対してJDeveloperが提案するデフォルトのファイル名は、task-flow-definition.xmlです。このファイルにはバインド・タスク・フローのメタデータが格納されています。これには、バインド・タスク・フローに追加する、各ビュー・アクティビティ、メソッド・コール・アクティビティ、タスク・フロー・コールなどのエントリが含まれています。
JDeveloperは、作成する後続のバインド・タスク・フローに次のファイル名を提案します。
task-flow-definitionN.xml
ここでNは新しいバインド・タスク・フローを作成するたびに増分する番号です。または、バインド・タスク・フローのソース・ファイルに好きなファイル名を選択します。デフォルトでは、JDeveloperは、task-flow-definition.xmlファイルを次のディレクトリに格納します。
application_root\ViewController\Web Content\WEB-INF
バインド・タスク・フローのソース・ファイルの有効なメタデータ・エントリを定義するXMLスキーマ定義ファイル(XSD)は、インストールしたJDeveloperの次のディレクトリにあるadf-controller-schema.jarファイルに格納されます。
jdev_install\oracle_common\modules\oracle.adf.model_12.1.2
JDeveloperのXSDビジュアル・エディタを使用して、これらのファイルを表示し、バインド・タスク・フローのソース・ファイルの有効なメタデータ要素と属性を識別します。
次の例は、「タスク・フローの作成」ダイアログを使用して新しいバインド・タスク・フローを作成するときのソース・ファイルの内容を示しています。<task-flow-definition>要素によって、このファイルがバインド・タスク・フローとして識別されます。JDeveloperは、「タスク・フローの作成」ダイアログの「バインド・タスク・フローとして作成」チェック・ボックスを選択するときに<task-flow-definition>要素を生成します。<task-flow-definition>要素のid属性(task-flow-definition)の値は、「タスク・フローの作成」ダイアログの「タスク・フローID」フィールドに入力した値に対応します。<use-page-fragments/>要素は、このバインド・タスク・フローのすべてのビュー・アクティビティをページ・フラグメントと関連付ける必要があることを示しています。JDeveloperは、「タスク・フローの作成」ダイアログの「ページ・フラグメントを使用して作成」チェック・ボックスを選択するときにこのエントリを生成します。
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
<task-flow-definition id="task-flow-definition">
<use-page-fragments/>
</task-flow-definition>
</adfc-config>
例A-4に、Summit ADFタスク・フロー・サンプル・アプリケーションのcustomers-task-flow-definition.xmlファイルを示します。図A-5 の「構造」ウィンドウに示すように、アクティビティのエントリを表示できます。
バインド・タスク・フローの詳細は、「ADFタスク・フローのスタート・ガイド」を参照してください。
図A-5 customers-task-flow-definition.xmlファイルの「構造」ビュー

例A-4 customers-task-flow-definition.xmlファイルの「ソース」ビュー
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
<task-flow-definition id="customer-task-flow-definition">
<default-activity id="__1">isCustomerLogin</default-activity>
<managed-bean id="__11">
<managed-bean-name id="__9">CustomersBackingBean</managed-bean-name>
<managed-bean-class id="__10">oracle.summit.backing.CustomersBackingBean</managed-bean-class>
<managed-bean-scope id="__8">backingBean</managed-bean-scope>
</managed-bean>
<view id="Customers">
<page>/customers/Customers.jsff</page>
</view>
<method-call id="SetCurrentRowWithKeyValue">
<method>#{bindings.setCurrentRowWithKeyValue.execute}</method>
<outcome>
<fixed-outcome>setCurrentRowWithKey</fixed-outcome>
</outcome>
</method-call>
<router id="isCustomerLogin">
<case id="__4">
<expression>#{securityContext.userInRole['Application Customer Role']}</expression>
<outcome>customerLogin</outcome>
</case>
<default-outcome>notCustomerLogin</default-outcome>
</router>
<control-flow-rule id="__2">
<from-activity-id>SetCurrentRowWithKeyValue</from-activity-id>
<control-flow-case id="__3">
<from-outcome>setCurrentRowWithKey</from-outcome>
<to-activity-id>Customers</to-activity-id>
</control-flow-case>
</control-flow-rule>
<control-flow-rule id="__5">
<from-activity-id>isCustomerLogin</from-activity-id>
<control-flow-case id="__6">
<from-outcome>notCustomerLogin</from-outcome>
<to-activity-id>Customers</to-activity-id>
</control-flow-case>
<control-flow-case id="__7">
<from-outcome>customerLogin</from-outcome>
<to-activity-id>SetCurrentRowWithKeyValue</to-activity-id>
</control-flow-case>
</control-flow-rule>
<critical/>
<use-page-fragments/>
</task-flow-definition>
</adfc-config>
ADF Fusion Webアプリケーション・テンプレートを使用してアプリケーションを作成すると、JDeveloperによってadf-config.xmlファイルが生成されます。JDeveloperは、アプリケーション・レベルのディスクリプタ・ファイルを次のディレクトリに格納します。
application_root\.adf\META-INF
JDeveloperでは、このファイルは、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルで「ディスクリプタ」→「ADF META-INF」ノードを開くと見つかります。
adf-config.xmlファイルは、デプロイ時に定義するアプリケーション・レベルの設定を指定します。デプロイメント・プロファイルを使用して、アプリケーションのデプロイ時に使用される設定を指定することができます。Oracle Enterprise Managerを使用して、実行時に一部の設定を変更できます。
adf-config.xmlファイルの設定を変更することによって実現できるタスクの例には、次のものが含まれます。
ADFコントローラのメタデータの有効化および無効化
クラスタ環境にFusion Webアプリケーションをデプロイする場合のメモリー・スコープのレプリケート
アプリケーションがEL式を使用して実行時にリソース・バンドルから文字列を取得する場合にリソース・バンドルのキャッシュを管理するプロパティの構成
構成できるプロパティを次に示します。
initial-size
アプリケーションがキャッシュできるリソース・バンドルの個数の初期値を指定します。デフォルト値は100です。
max-size
アプリケーションがキャッシュできるリソース・バンドルの個数の最大値を指定します。デフォルト値は100です。
load-factor
デフォルト値は0.75です。
expire-time
デフォルト値は43200秒(12時間)です。
これらのプロパティは、adf-config.xmlファイルで<resource-bundle-cache>要素の属性値として指定できます。例A-5 は、adf-config.xmlファイルで、アプリケーションに対するこれらの値を設定する方法を示しています。
adf-config.xmlファイルでリソース・バンドルのキャッシュを設定するかわりに、Java Virtual Machine (JVM)のパラメータとして、リソース・バンドルのキャッシュ・プロパティを指定できます。プロパティをJVMのパラメータとして指定した場合、JVMが管理しているアプリケーションすべてに変更が適用されます。このため、adf-config.xmlファイルで、アプリケーションのリソース・バンドルのキャッシュ・プロパティを構成することを検討してください。JVMのパラメータとしてリソース・バンドルのキャッシュ・プロパティを指定することに決めた場合は、次のプロパティ名を使用します。
resource-bundle-cache-initial-size
resource-bundle-cache-max-size
resource-bundle-cache-load-factor
resource-bundle-cache-expire-time
実行時、Fusion Webアプリケーションは、META-INFディレクトリからadf-config.xmlファイルをロードします。このFusion Webアプリケーションにより、複数のadf-config.xmlファイルが検出された場合、ファイルのロードは停止され、警告がログに記録されます。
次のタスクは、adf-config.xmlファイルが変更されるかこのファイルの変更が要求されます。
ADFコントローラ・レイヤー内
タスク・フローの作成
デフォルトでは、ADFコントローラはユーザー・セッション・レベルのキャッシュを使用して、アプリケーションのバインドなしタスク・フロー・メタデータを格納します。これにより、アプリケーションのバインドなしタスク・フロー・メタデータのユーザー固有のシード・カスタマイズまたは実行時のデザイン・タイムのカスタマイズがサポートされます。adf-config.xmlのファイル概要エディタの「コントローラ」ページで「バインドなしタスク・フロー・カスタマイズの許可」チェックボックスを選択解除してこの動作を無効にし、<allow-unbounded-task-flow-customizations>要素の値をfalseに設定します。アプリケーションのバインドなしタスク・フロー・メタデータも引き続きカスタマイズできます。ただし、これらのカスタマイズはアプリケーションのすべてのユーザーによって共有されます。カスタマイズの詳細は、「MDSによるアプリケーションのカスタマイズ」を参照してください。タスク・フローの詳細は、「ADFタスク・フローのスタート・ガイド」を参照してください。
root-view-port-request-lock-timeoutプロパティに対して整数値を構成します。この値は、リクエストがルート・ビュー・ポートのロックを保持できる秒数で、この値を超えるとタイムアウトして他のリクエストがロックを取得できるようになります。デフォルト値は600秒です。ルート・ビュー・ポートの詳細は、「ビュー・ポートおよびADFリージョンについて」を参照してください。
<max-root-view-ports>プロパティの値を指定することで、アプリケーションのアクティブなルート・ビュー・ポート数を最小化します。詳細は、「アプリケーションでのアクティブなルート・ビュー・ポート数の最小化」を参照してください。
収集されるイベント数を変更するか、ADFコントローラによるイベントの収集を停止します。どちらのタスクにも、アプリケーションのadf-config.xmlファイル内の<debug-history-size>要素の値の構成が関係します。詳細は、「診断フレームワークへのインシデントのレポート」を参照してください。
明示的なセーブ・ポイントの有効化
詳細は、「暗黙的なセーブポイントを有効化する方法」を参照してください。
セキュリティ権限を持たないリージョンでバインド・タスク・フローを起動しようとする場合は、起動のための認可を必要としないバインド・タスク・フローを指定します。詳細は、「未認可のユーザーによるセキュリティ保護されたタスク・フローへのアクセスの処理」を参照してください。
ADFコントローラがADFメモリー・スコープの変更を追跡し、サーバー・クラスタ内のページ・フロー・スコープとビュー・スコープをレプリケートできるようにします。アプリケーションのadf-config.xmlファイル内のADFコントローラ・パラメータ<adf-scope-ha-support>をtrueに設定する必要があります。詳細は、「マネージドBeanの変更からOracle ADFが通知を受信することを確認する方法」を参照してください。
ADFモデル・レイヤー内
アプリケーションのデフォルトの動作として、自動部分ページ・レンダリングを無効にします。これを行うには、changeEventPolicy属性の値をpprのデフォルト値から変更する必要があります。
<defaults changeEventPolicy="ppr"/>
詳細は、「部分ページ・レンダリングおよびイテレータ・バインディングに関する必知事項」を参照してください。
ユーザー・インタフェース・プロジェクト内のすべての問合せコンポーネントを、バインド変数を使用して入力検索フィールドをレンダリングするように構成します。
詳細は、「検索フォームの名前付きバインド変数に関する必知事項」を参照してください。
コンテキスト・イベントのディスパッチの制御
詳細は、「コンテキスト・イベント・ディスパッチの制御方法」を参照してください。
MDSでの保存済の検索の永続化
詳細は、「保存済の検索をMDSに保存する方法」を参照してください。
ADFアプリケーション・モジュールからのRESTful Webサービスの作成、およびRESTリソースのリリース・バージョン識別子の管理
詳細は、「アプリケーション・モジュールを使用したADF RESTリソースの作成」および「ADF RESTリソースのバージョニング」を参照してください。
「ADFビジネス・コンポーネント」グローバル設定の構成
詳細は、「ビュー・オブジェクトの最大フェッチ・レコード数を制限するためのフェッチ・サイズの使用方法」および「データベース接続を使用してデータ・モデル・プロジェクトを初期化する方法」を参照してください。
Oracle ADFセキュリティの有効化と無効化
詳細は、「ADFセキュリティの有効化」および「ADFセキュリティの無効化」を参照してください。
シード・カスタマイズの有効化
詳細は、「ユーザー・インタフェース・プロジェクトでシード・カスタマイズを有効化する方法」および「既存のページでシード・カスタマイズを有効化する方法」を参照してください。
変更永続性の構成
詳細は、「ユーザー・カスタマイズを有効にする方法」を参照してください。
ユーザー・カスタマイズの有効化
詳細は、「ユーザー・カスタマイズを有効化する場合の処理」を参照してください。
例A-5に、アプリケーションのadf-config.xmlファイルのエントリ例を示します。
例A-5 サンプルadf-config.xmlファイル
<?xml version="1.0" encoding="windows-1252" ?>
<adf-config xmlns="http://xmlns.oracle.com/adf/config"
xmlns:sec="http://xmlns.oracle.com/adf/security/config">
<sec:adf-security-child xmlns="http://xmlns.oracle.com/adf/security/config">
<CredentialStoreContext credentialStoreClass=
"oracle.adf.share.security.providers.jps.CSFCredentialStore"
credentialStoreLocation="../../src/META-INF/jps-config.xml"/>
<!-- The Configure ADF Security wizard modifies JaasSecurityContext settings -->
<JaasSecurityContext initialContextFactoryClass=
"oracle.adf.share.security.JAASInitialContextFactory"
jaasProviderClass=
"oracle.adf.share.security.providers.jps.JpsSecurityContext"
authorizationEnforce="true"
authenticationRequire="true"/>
</sec:adf-security-child>
<adf-controller-config xmlns="http://xmlns.oracle.com/adf/controller/config">
<savepoint-datasource>java:comp/env/jdbc/summit_adfDS</savepoint-datasource>
<enable-implicit-savepoints>true</enable-implicit-savepoints>
<unauthorized-region-taskflow>/WEB-INF/task-flow-definition.xml</unauthorized-region-taskflow>
</adf-controller-config>
<adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/config">
<persistent-change-manager>
<persistent-change-manager-class>
oracle.adf.view.rich.change.MDSDocumentChangeManager
</persistent-change-manager-class>
</persistent-change-manager>
<taglib-config>
<taglib uri="http://xmlns.oracle.com/adf/faces/rich">
<tag name="calendar">
<attribute name="activeDay">
<persist-changes>true</persist-changes>
</attribute>
</tag>
<!-- Additional tags omitted to make this example concise -->
<tag name="table">
<attribute name="filterVisible">
<persist-changes>true</persist-changes>
</attribute>
</tag>
</taglib>
</taglib-config>
</adf-faces-config>
<adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config">
<mds-config xmlns="http://xmlns.oracle.com/mds/config" version="11.1.1.000">
<cust-config>
<match path="/">
<customization-class name="oracle.adf.share.config.UserCC"/>
</match>
</cust-config>
</mds-config>
</adf-mds-config>
<adf-adfm-config xmlns="http://xmlns.oracle.com/adfm/config">
<defaults rowLimit="100"/>
<startup>
<amconfig-overrides>
<config:Database jbo.SQLBuilder="Oracle" jbo.locking.mode="optimistic"/>
</amconfig-overrides>
</startup>
</adf-adfm-config>
<!-- Properties to manage the caching of a resource bundle in your application -->
<adf-resourcebundle-config xmlns="http://xmlns.oracle.com/adf/resourcebundle/config">
<applicationBundleName>
path-to-resource-bundle/bundle-name
</applicationBundleName>
<resource-bundle-cache initial-size="20" max-size="100" expire-time="30000" load-factor=".75"/>
<bundleList>
<bundleId override="true">
package.BundleID
</bundleId>
</bundleList>
</adf-resourcebundle-config>
</adf-config>
adf-settings.xmlファイルには、プロジェクト・レベルおよびライブラリ・レベルの設定(ADF Facesヘルプ・プロバイダ、ADFコントローラ・フェーズ・リスナーなど)が保持されます。
adf-settings.xmlの構成設定は固定で、アプリケーション・デプロイメント時またはその後に変更できません。アプリケーションに複数のadf-settings.xmlファイルがあることがあります。それらの構成の内容をマージするのはadf-settings.xmlファイル・ユーザーの役目です。
JDeveloperは、次の場合にadf-settings.xmlファイルを作成します。
ADF Fusion Webアプリケーション・テンプレートを使用してアプリケーションを作成するとき
ADFページ・フロー(ADFコントローラ)を既存のプロジェクトに機能として追加するとき
デフォルトでは、JDeveloperは、adf-settings.xmlファイルを次のディレクトリに格納します。
application_root\ViewController\src\META-INF
次のタスクでは、adf-settings.xmlファイルが変更されるか、またはユーザーによるこのファイルの変更が要求されます。
フェーズ・リスナーの登録
詳細は、「リスナーをグローバルに登録する方法」を参照してください。
ADF Facesコンポーネントのヘルプの作成
詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のコンポーネントのヘルプの表示に関する項を参照してください。
adf-settings.xmlファイルの編集方法の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のadf-settings.xmlでのADF Facesの構成方法に関する項を参照してください。
例A-6に、フェーズ・リスナーおよびヘルプ・プロバイダ向けに設定されたadf-setting.xmlファイルのサンプルを示します。
例A-6 サンプルadf-settings.xmlファイル
<?xml version="1.0" encoding="windows-1252" ?>
<adf-settings xmlns="http://xmlns.oracle.com/adf/config">
<adfc-controller-config xmlns="http://xmlns.oracle.com/adf/controller/config">
<lifecycle>
<phase-listener>
<listener-id>SummitPhaseListener</listener-id>
<class>oracle.summit.listeners.SummitPhaseListener</class>
</phase-listener>
</lifecycle>
</adfc-controller-config>
<adf-faces-config>
<help-provider prefix="MYAPP">
<help-provider-class>oracle.summit.MyHelpProvider</help-provider-class>
<property>
<property-name>myCustomProperty</property-name>
<value>someValue</value>
</property>
</help-provider>
</adf-faces-config>
</adf-settings>
Oracle ADFには、標準のweb.xmlデプロイメント・ディスクリプタ・ファイルに固有の構成設定があります。
JDeveloperでJSFテクノロジを使用するプロジェクトを作成すると、デフォルト設定を含む初期のweb.xmlファイルが/WEB-INFに自動的に作成されます。ファイルを編集するには、「アプリケーション」ウィンドウでweb.xmlをダブルクリックし、XMLエディタで開きます。
次の設定は、JSFおよびADF Facesを使用するすべてのアプリケーションのweb.xmlで構成する必要があります。
ADFライブラリ・リソース・サーブレットとマッピング: アプリケーション・クラス・パスのADFライブラリJARファイルのWebアプリケーション・リソース(イメージ、スタイル・シート、JavaScriptライブラリ)として動作します。
デフォルトでは、イメージなどの静的Webアプリケーション・リソース(ADFライブラリのリソースを含む)には、364日の失効期限設定があります。この失効期間設定では、次のイベントのいずれかが発生するまで、静的Webアプリケーション・リソースの検証をクライアントがサーバーにリクエストしないことが要求されます。
失効期限が切れる
ブラウザ・キャッシュに静的リソースが含まれなくなる
ユーザーがページ・リフレッシュを実行する
クライアントがサーバーにリクエストを行い、リソースが変更しなかった場合、サーバーは、本文なしでHTTP 304応答(変更なし)を返します。
初期化パラメータをweb.xmlファイルに追加して、ADFライブラリのすべての静的Webアプリケーション・リソースに対する失効期限設定364日をオーバーライドできます。次の例に、多くの例を使用してこれらの初期化パラメータを設定する方法を示します。
<!-- Expires all static resources in 30 days --> <init-param> <param-name>expires</param-name> <param-value>60*60*24*30</param-value> </init-param> <!-- Expires static resources with the .js file extension in 1 day --> <init-param> <param-name>expires.js</param-name> <param-value>60*60*24</param-value> </init-param> <!-- Turns off staleness setting. Use for testing --> <init-param> <param-name>expires</param-name> <param-value>OFF</param-value> </init-param>
次の例は、デフォルトのファイル拡張子を示しています。extensionsパラメータ値を構成して必要なファイル拡張子を含めることによって、ファイル拡張子を追加できます。ファイル拡張子の前後に「.」を付ける必要があることに注意してください。次の例に、キャッシュ制御の可視性を指定する方法も示します。
<!-- Specify file extensions for a number of different file formats --> <init-param> <param-name>extensions</param-name> <param-value>.png.jpg.jpeg.gif.js.css.</param-value> </init-param> <!-- Specify visibility for cache control, for example --> <init-param> <param-name>visibility</param-name> <param-value>Public</param-value> </init-param>
JSFのサーブレットとマッピング: JSFを使用してユーザー・インタフェースを構築するWebアプリケーションのリクエスト処理ライフサイクルを管理するサーブレットjavax.faces.webapp.FacesServlet。
ADF Facesのフィルタとマッピング: AdfFacesContextオブジェクトを構成してADF Facesを適切に初期化するためのサーブレット・フィルタ。このフィルタでは、ファイル・アップロードも処理されます。
JSFのサーブレットとマッピングの構成設定は、JSFプロジェクトを最初に作成したときに、自動的に初期のweb.xmlファイルに追加されます。ADF Facesのフィルタとマッピング、およびリソース・サーブレットとマッピングの構成設定は、JSFページに最初にADF Facesコンポーネントを挿入したときに自動的に挿入されます。
詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の付録「ADF Facesの構成」を参照してください。
ADFロガーは診断ツールの一種で、アプリケーションのデバッグ時にJDeveloperでこのツールを使用して、実行時トレース・メッセージをキャプチャできます。このツールの使用を設定するには、logging.xmlファイルを編集します。
logging.xmlファイル、およびADF Loggerの使用の詳細は、「ADF Loggerの使用」を参照してください。