この章では、Forms ServicesがOracle Fusion Middlewareで実行される仕組み、およびFormsアプリケーションを配布する際の手順について説明します。 また、基本的な構成ファイルについても説明します。インストールの完了後、この章に記載されている情報を使用して、初期構成の変更や必要な変更を行うことができます。
この章には、次の項が含まれています。
この項では、Formsサーブレットを使用して初期のHTMLページを生成することを前提に、Forms ServicesがOracle Fusion Middlewareで実行される仕組みと、構成ファイルが使用される仕組みについて説明します。ここでは、Webサーバーがexample.comと呼ばれるコンピュータのポート8888で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。
ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。
ユーザーはWebブラウザを起動し、次のようなURLを指定します。
http://example.com:8888/forms/frmservlet?config=myapp&form=hrapp
この例では、実行されるトップ・レベルのフォーム・モジュールはhrappで、使用する構成セクションはmyappです。
Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス/forms
を検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.conf
で定義されます。
Oracle WebLogic管理対象サーバーは、/forms
をコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、web.xml
ファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。
Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。
$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config
にあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg
)を開きます。
formsweb.cfg
ファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myapp
が含まれているため、[myapp
]セクションが使用されます。
使用するベースHTMLファイルを決定します。このときの判断基準は、(a)リクエストを発行しているブラウザ(User-Agent)、(b)ブラウザを実行しているプラットフォーム、(c)formsweb.cfg
ファイルの各種パラメータの設定(特にbasejpi.htm
とbase.htm
)です。
ベースHTMLファイルを読み取り、次のように変数を置換した後、コンテンツをHTMLページとしてユーザーのWebブラウザに送り返します。
Formsサーブレットは変数(%myParam%
など)を検出すると、一致するURL問合せパラメータ(&myParam=xxx
など)を検索し、そのパラメータが見つからないときはformsweb.cfg
ファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%
)はそのパラメータの値で置換されます。
この例では、ベースHTMLファイルにはテキスト%form%
が記述されています。このテキストが値hrappに置き換わります。
FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、Webブラウザに送り返されるHTMLページには、Formsアプレット(シン・クライアント)を起動するapplet、objectまたはembedタグが含まれます。Formsクライアントは、Sun社のJava Plug-inが提供するJVM環境で実行されます。
Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。
/forms/java
のweblogic.xml
ファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。
注意: Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJava Plug-inのキャッシュからロードされます。
Oracle Forms Servicesアプレットが実行されると、URL http://example.com:8888/forms/lservlet
にあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。
Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用のweb.xml
ファイルにあるサーブレット・マッピングにパス/forms/lservlet
が一致することから、Oracle HTTP Serverリスナーは、このリクエストをOracle WebLogic管理対象サーバーに転送します。
Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(frmweb.exe
またはfrmweb
)を起動します。
FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。
URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。ベースHTMLファイルのserverArgs値にある%form%
はhrappに置き換わります。そのため、このランタイム・プロセスはファイルhrapp.fmxのフォームを実行します。
このファイルは、環境ファイル(デフォルトではdefault.env
)で定義されたFORMS_PATH
環境設定に指定されているディレクトリのいずれかに格納されている必要があります。このディレクトリをformsweb.cfg
で指定することもできます(例: form=c:\<path>\myform
)。
Formsセッションは、次のいずれかが起きた場合に終了します。
トップ・レベルのフォームが終了した場合(exit_form組込み関数をコールするPL/SQLトリガー・コードなどにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。exit_form(no_validate)
を指定している場合は、この指示が表示されずにフォームが終了します。
ユーザーがWebブラウザを終了した場合。この場合、保存されていない更新は失われます。
この項では、Formsアプリケーションの構成に使用する基本ファイルについて説明します。構成の詳細は、第4章「Forms Servicesの構成と管理」を参照してください。
この項は、次の小項目に分かれています。
注意: ファイルの場所は、DOMAIN_HOME とORACLE_INSTANCE ディレクトリに関連して指定されます。Windowsでは、フォワードスラッシュをバックスラッシュに置き換える必要があります。Middlewareホーム、Oracleホーム、Oracleインスタンスなど、使用される用語の詳細は、『Oracle Fusion Middleware管理者ガイド』を参照してください。 |
Oracle Forms構成ファイルを使用すると、Formsのパラメータを指定できます。これらのファイルは、Oracle Enterprise Manager Fusion Middleware Controlで管理できます。これらの構成ファイルには次のものが含まれます。
場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config
通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config
です。
このファイルにはFormsランタイムの環境設定が含まれています。UNIXおよびLinuxの場合、default.env
にはPATH
とLD_LIBRARY_PATH
が記述されています。
default.env
ファイルのサンプルは、付録C「プラットフォーム固有のdefault.envファイル」を参照してください。
default.env
の詳細は、第4章「環境変数の管理」を参照してください。
場所: $DOMAIN_HOME/config/fmwconfig/servers/<MANAGED_SERVER>/applications/<appname>_<appversion>/config
通常、この場所は$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config
です。
このForms構成ファイルには、次の内容が含まれています。
Formsランタイムのコマンドライン・パラメータの値、使用する環境ファイルの名前(envFile
設定)。
インストール時に設定するサーブレット構成パラメータのほとんどの設定。変更が必要な場合は、これらのパラメータをカスタマイズできます。
base.htm
ファイル内の変数(%variablename%
)は、formsweb.cfg
ファイルに指定された適切なパラメータ値によって置換されます。URLリクエストがある場合は、その問合せパラメータの値によって置換されます。
formsweb.cfg
ファイルのサンプルは、付録C「デフォルトのformsweb.cfg」を参照してください。
formsweb.cfg
の詳細は、第4章「Fusion Middleware Controlによるパラメータの構成」を参照してください。
場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server
このファイルを使用して、Forms Traceを構成します。Forms Traceは、Oracle Formsの以前のリリースで利用できたForms Runtime Diagnostics(FRD)とPerformance Event Collection Services(PECS)の機能にかわるものです。Forms Traceは、フォームでの実行パス(たとえば、ユーザーがフォームの使用時に行った手順など)をトレースします。
ftrace.cfg
の詳細は、第12章「トレースと診断」を参照してください。
Forms Services Java EEアプリケーションEAR(Enterprise Archive)ファイルformsapp.ear
は、Oracle Formsの構成時にWLS_FORMS(Oracle WebLogic管理対象サーバー)に配布されます。
これにより、$DOMAIN_HOME /servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string1>/APP-INF
ディレクトリの下に次のようなディレクトリ構造が作成されます。
./APP-INF ./APP-INF/lib ./APP-INF/lib/frmconfig.jar ./APP-INF/lib/frmconfigmbeans.jar ./META-INF ./META-INF/application.xml ./META-INF/jazn-data.xml ./META-INF/jps-config.xml ./META-INF/mbeans.xml ./META-INF/weblogic-application.xml
$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string2>/war/WEB-INF
ディレクトリの下には、次のようなディレクトリ構造が作成されます。
./WEB-INF ./WEB-INF/lib ./WEB-INF/lib/frmsrv.jar ./WEB-INF/web.xml ./WEB-INF/weblogic.xml
注意: $DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1 のサブディレクトリは、Oracle WebLogic Serverのnostageデプロイメント・プロセスで作成されます。これらのディレクトリにはランダムな文字列の名前が割り当てられます。たとえば、e18uoiやwb1h9eなどのディレクトリ名になります。 |
デプロイメント・ディスクリプタ:
application.xml
とweblogic-application.xml
では、EARファイルの構造が定義されます。
web.xml
では、FormsサーブレットとFormsリスナー・サーブレット用に、別名frmservlet
とlservlet
が定義されます。
weblogic.xml
では、コンテキスト・パラメータとユーザー定義の仮想ディレクトリ・マッピングを定義します。
web.xml
ファイルのサンプルは、付録C「web.xml」を参照してください。
この項では、Oracle Forms Services用のOracle HTTP Listenerの構成に使用するファイルについて説明します。
場所: $ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf
forms.conf
は、Oracle Forms Services用のOracle HTTP Listener構成ファイルです。forms.conf
では、Forms Servicesアプリケーションが配布される管理対象サーバーのWebLogicハンドラ・マッピングが定義されます。
forms.conf
は、Oracle HTTP Serverディレクティブ・ファイルです。Oracle Fusion Middlewareでは、$ORACLE_INSTANCE/config/OHS/<OHS INSTANCE NAME>/moduleconf
のOracle HTTP Server構成ディレクトリにforms.conf
ファイルがあります。
カスタムOracle HTTP Serverディレクティブをforms.conf
に追加した場合、これが存在するOracle HTTP Serverノードを再起動する必要があります。
forms.conf
の詳細は、付録C「forms.conf」を参照してください。
別のホストでOracle HTTP Serverを構成するには、次のタスクを実行します。
Formsをホストする層からOHSをホストする層にForms OHSディレクティブ・ファイルforms.conf.backup
をコピーし、その名前をforms.conf
に変更します。
コピー元の場所(Forms層):
$ORACLE_INSTANCE/config/FormsComponent/forms/server/forms.conf.backup
コピー先の場所(OHS層):
$ORACLE_INSTANCE/config/OHS/<OHS Component Instance>/moduleconf/forms.conf
適切な管理対象サーバー・クラスタを指定するか、デフォルト・フォームのJava EEアプリケーションのコンテキスト・ルート(/forms
)に対する管理対象サーバーを指定します。
クラスタ・エントリを指定する例:
<Location /forms> SetHandler weblogic-handler WebLogicCluster <HOSTNAME>:<WLS_PORT> DynamicServerList OFF </Location>
非クラスタ・エントリを指定する例:
<Location /forms> SetHandler weblogic-handler WebLogicHost = <HOSTNAME> WebLogicPort = <PORT> </Location>
ユーザーが追加したディレクティブで参照されるディレクトリが、OHS層からアクセス可能であることを確認します。
OHS層のOHSインスタンスを再起動します。
Registry.dat
は、Forms Servicesで使用されるデフォルトのフォント、フォント・マッピングおよびアイコン情報を含んでいるファイルです。
場所: $DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config/forms/registry/oracle/forms/registry
デフォルトのRegistry.dat
ファイルのサンプルは、付録C「Registry.dat」を参照してください。
Registry.datの詳細は、第4章「Forms Servicesで使用するフォント、アイコンおよびイメージの配置」を参照してください。
場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/
base.htm
とbasejpi.htm
は、Oracle Formsアプリケーションの起動に使用するHTMLページを生成するときに、Formsサーブレットによりテンプレートとして使用されます。
構成の変更は、これらのファイルを編集するのではなく、Enterprise Managerを使用してformsweb.cfg
ファイルで行うことをお薦めします。ベースHTMLファイルを変更するには、ユーザー自身のバージョンを作成し、設定を適切に変更してformsweb.cfg
ファイルからそのユーザー・バージョンのファイルを参照します。
ベースHTMLファイルのサンプルは、付録C「base.htmファイルとbasejpi.htmファイル」を参照してください。
この項では、実行時にWebUtilを構成するために使用するファイルについて説明します。設計時に使用するWebUtilの詳細は、Oracle Forms Developerのオンライン・ヘルプを参照してください。WebUtil構成ファイルには次のものが含まれます。
場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server
このファイルには、次のようなWebUtilの構成設定がすべて示されます。
ロギング・オプション
インストール・オプション
ファイルのアップロードおよびダウンロードのオプション
ロギング・エラーやログ・メッセージに対するサーバー・サイドのロギング・オプション
webutil.cfg
ファイルのサンプルは、付録C「デフォルトのwebutil.cfg」を参照してください。
場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/
これは、Webでフォームを実行するデフォルトのベースHTMLファイルです。汎用のAPPLETタグを使用して、WebUtilに証明書を登録するFormsアプレットを含めます。
webutilbase.htm
ファイルのサンプルは、付録C「デフォルトのwebutilbase.htm」を参照してください。
場所: $ORACLE_INSTANCE/config/FormsComponent/forms/server/
これはJDK Java Plug-inを使用して、Webのフォームを実行するデフォルトのベースHTMLファイルです。このファイルは、たとえば、UNIX上でFirefoxを使用してWebのフォームを実行する場合やWebUtilの証明書を登録する場合に使用します。
webutiljpi.htm
ファイルのサンプルは、付録C「デフォルトのwebutiljpi.htm」を参照してください。
Forms Developerでアプリケーションを作成したら、そのアプリケーションをWeb上に配布できます。Oracle Forms Servicesは、指定されたURLによってOracle Fusion Middlewareのアプリケーションにアクセスします。次に、そのURLでHTTP Listenerにアクセスし、そこでListener Servletと通信します。リスナー・サーブレットは、Forms ServicesのセッションごとにFormsランタイム・プロセス(Windowsではfrmweb.exe
、UNIXとLinuxではfrmweb
)を起動します。
Forms Servicesが実行される仕組みの詳細は、第3.1項「Oracle Forms Servicesのアクション」を参照してください。
インストーラで設定されたデフォルトのパラメータを使用して基本フォームを配布する手順は次のとおりです。
Forms Developerでアプリケーションを作成し、保存します。
.fmbファイルは、Forms Developer以外ではオープンできない設計時ファイルです。.fmxファイルは.fmbをコンパイルしたときに作成されるランタイム・ファイルで、Webへの配布に使用します。
Forms Developerの詳細は、Forms Developerの「ヘルプ」メニューを参照してください。
目的のアプリケーション・モジュールにOracle Forms Servicesからアクセスできるようにformsweb.cfg
を変更します。このファイルは、Fusion Middleware Controlの「Web構成」ページで編集します。詳細は、第4.2項「Forms Servicesの構成」を参照してください。
表3-1は、form=hrapp.fmx
というFormsモジュールを持つアプリケーションmy_applicationの構成を示しています。
構成が完了すると、ブラウザのURLに「...?config=my_application
」(formsweb.cfg
の「Web構成」セクションの名前)と入力することにより、Web上でOracle Forms Servicesモジュールhrapp.fmxへアクセス可能になります。
注意: この構成セクションの名前に使用できる文字は、空白以外の英数字のみです。 |
.fmxファイルの場所は、必ずFORMS_PATH
環境変数で指定します。
たとえばWindowsでは、.fmxファイルがd:\my_files\applications
にある場合は、FORMS_PATH
にd:\my_files\applications
と記述します。Windowsの場合、複数の場所を指定するには各ディレクトリ名をセミコロンで区切ります。UNIXとLinuxの場合はコロン(:)で区切ります。その環境ファイルの「環境構成」ページで、この情報を指定します。
環境ファイルを変更するには、Fusion Middleware Controlの「環境構成」ページで環境ファイルを選択し、アプリケーションの必要に応じて環境変数を追加または編集します。たとえば、表3-2に示す環境変数を追加できます。
環境ファイルでこれらの環境変数を指定した場合は、「Web構成」ページを使用して、formsweb.cfg
の該当する構成セクションでこの環境ファイルを指定します。
次のように、URLで記述したアプリケーションの名前を入力します。
http://example.com:8888/forms/frmservlet?
exampleはコンピュータのホスト名、8888はHTTPリスナーで使用するポートです。
構成セクションを作成した後、config=に続いてその構成セクション名を記述します。この例では、hrapp.fmx
にアクセスするためのURLは次のようになります。
http://example.com:8888/forms/frmservlet?config=my_application
Oracle Forms Servicesアプリケーションにパラメータ値を事前定義するには、2つの方法があります。次の方法でパラメータを定義できます。
Fusion Middleware Controlの「Web構成」ページのデフォルト・セクションで、アプリケーション設定を編集します。デフォルトの構成セクションには、Oracle Forms Servicesで使用するデフォルト値が表示されます。
名前を付けたアプリケーションの構成セクションで、他のシステム・パラメータとユーザー・パラメータの値を管理(追加、編集、コピー、削除)します(第3.3.3項「Fusion Middleware Controlでの構成セクションの作成」を参照)。たとえば、myApp
用に作成した構成セクションで、表3-3に示すパラメータの追加やその値の変更ができます。
注意: 「Web構成」にある名前を付けた構成セクションで指定したパラメータは、システム・パラメータ設定よりも優先して適用されます。 |
注意: システム・パラメータは、ユーザー・パラメータとは異なりURLで上書きできません。 |
第3.3.1項「アプリケーションの配布」のステップ2で作成した構成セクションで、Oracle Forms Servicesアプリケーションのパラメータを指定できます。「Web構成」ページのデフォルト・セクションで使用可能なアプリケーションおよびシステム・パラメータを任意で指定できます。
たとえば、lookAndFeel
パラメータをoracle
の値に設定し、「適用」をクリックすると、アプリケーションのルック・アンド・フィールをOracleのルック・アンド・フィールに設定できます。
また、名前を付けた構成セクションのデフォルトのパラメータ値にも上書きできます。たとえば、アプリケーションへの接続情報をscott/tiger@orcl
として事前定義するには、userid
のパラメータ値を設定する必要があります。これには、名前を付けた構成セクションでuserid
のパラメータ値をscott/tiger@orcl
に変更します。
編集可能な他のパラメータは、第4章「Forms構成パラメータ」を参照してください。
Oracle Forms ServicesアプリケーションにアクセスするURLにパラメータを直接入力できます。前述の例の場合、構成ファイルにform
パラメータを指定するかわりに、URLに次のように入力することもできます。
http://example.com:8888/forms/frmservlet?config=my_application&form=hrapp
アンパサンド(&)を使用すれば、フォームと名前を付けた構成パラメータの組合せをコールすることができます。前述の例では、my_applicationで指定したパラメータ設定を使用して、フォームhrappをコールしています。
ランフォーム・パラメータに渡される値に特殊文字が含まれている場合は、特定の考慮事項が適用されます。この項では、こうした考慮事項について説明し、今回のリリースのデフォルト動作と前リリースのデフォルト動作を比較します。
ランフォーム・パラメータは、テンプレートHTMLファイルのserverArgsアプレット・パラメータで指定されるパラメータです。テンプレートHTMLファイルのserverArgsパラメータで指定された値は、変数の置換後に、コマンドライン・パラメータ文字列と呼ばれることもあります。これは、空白で区切られた一連のname=value
のペアで構成されます。この名前には、英数字またはアンダースコアのみが使用可能です。name=valueペアの値の部分には、任意の文字列を使用できます。
ランフォーム・パラメータの値は、次に示す3つの場所のいずれかで指定できます。
テンプレートHTMLファイル(base.htmなど)のserverArgs
パラメータの値。
(1)の変数参照を(直接または再帰的に)置換する、構成ファイル(formsweb.cfg
など)で指定された変数の値。通常、これらの値は、Fusion Middleware Controlを使用して管理します。第4章「Forms Servicesの構成」を参照してください。
(1)または(2)の変数参照を直接置換する、URLの属性値。
(3)では、URL構文規則(ブラウザおよびアプリケーション・サーバーで実行される)により、URLエスケープ・シーケンスとして特定の文字を入力する必要があります(計3文字のうち、%に続く2桁の16進数字は文字のASCII値を表します)。
この要件には、%
文字自体が含まれます(%25
として入力する必要があります)。さらに、現在Oracle Forms Servicesでは、ブラウザおよびアプリケーション・サーバーでエスケープなしに引用符を入力できる場合でも、引用符('"')は%22
として入力する必要があります。
URL構文規則では、(URLエスケープ・シーケンス%20
の代替として)空白を+
として入力することも許可されています。ただし、otherparams
構成パラメータの値では、+
は特別に扱われ、ランフォーム・パラメータの値に埋め込まれた空白を示すのとは対象的に、name=valueペアを分割します。
たとえば、ランフォーム・アプリケーションにユーザー・パラメータparam1
とparam2
が指定されており、これらのパラメータに「a b」および「c d」を割り当てる場合は、次の文字列をURLに取り込みます。
&otherparams=param1=a%20b+param2=c%20d
(1)および(2)のように、テンプレートHTMLファイルまたは構成ファイルでランフォーム・パラメータを指定する場合、Formsでは状況によってURLエスケープ・シーケンスが必要とされる場合やURLエスケープ・シーケンスの使用が許可される場合、また許可されない場合があります。
ランフォーム・パラメータの値の外部では、URLエスケープ・シーケンスは使用できません。たとえば、name=valueペアの=
は、常にそのまま=
として指定する必要があります。隣接する2つのname=valueペアを区切る空白は、常にそのまま" "(シングル・スペース文字)として指定する必要があります。
ランフォーム・パラメータの値の内部では、空白(' ')をURLエスケープ・シーケンス(%20
)として指定する必要があります。HTMLデリミタ文字(構成ファイルで指定)もURLエスケープ・シーケンスとして指定する必要があります。また、(1)のようにランフォーム・パラメータがテンプレートHTMLファイルで指定されている場合は、引用符('"')をURLエスケープ・シーケンス(%22)として指定する必要があります。
その他の7ビットASCII文字も、URLエスケープ・シーケンスとして指定する場合があります。ただし、この指定は必須ではありません(次に示すとおり、%
では必要な場合があります)。%
文字には、特定の追加制限が適用されます。次のものがあります。
HTMLデリミタが%
(デフォルト)である場合、ランフォーム・パラメータの値内の%
の出現をエスケープする(%25
として指定する)必要があります (HTMLデリミタ文字のエスケープの必要性については、前述のとおりです)。さらに、7ビットのASCII値を表す2桁の16進数字(最初の文字が0から7の2桁の16進数字)で変数名を開始することはできません。
HTMLデリミタが%
でなければ、その直後に8進数字と16進数字が続く場合、%
の出現はエスケープする必要があります。%の他の出現もエスケープすることをお薦めしますが、これは必須ではありません。
(前リリースで作成した既存のテンプレートHTMLファイルまたは構成ファイルを所有し、そのファイルで%以外のHTMLデリミタが使用され、ランフォーム・パラメータの値に%が含まれている場合は、この推奨事項を無視することもできます)。
リリース9.0.4以降の動作は、テンプレートHTMLファイルと構成ファイルのランフォーム・パラメータの値では引用符をエスケープ(%22)する必要がある点を除いて、現行リリースと同じです。
9.0.4より前のリリースでは、テンプレートHTMLファイルや構成ファイルで指定したランフォーム・パラメータの値にはURLエスケープ・シーケンスを使用できませんでした(前述の(1)と(2)の場合)。3つのすべての場合において、特定の特殊文字、特に空白、引用符、アポストロフィを指定することは困難または不可能でした。さらに、パラメータ値には、値をランフォームに渡す前に特定の変換が適用されました。特に顕著なのは値がアポストロフィで開始および終了する場合で、通常これらのアポストロフィは削除されました。ただし、こうした変換は明確に定義されたものではなく、Web環境とクライアント/サーバー環境の間には差異がありました。
使用しているアプリケーションが前リリースの動作に依存している場合は、構成ファイルでescapeparams
変数の値をFalse
に設定するだけで、現行リリースで前リリースの動作を取得できます(この作業はFusion Middleware Controlで実行します)。
以前の動作の取得を選択したアプリケーションに限定する場合は、異なる構成セクションのescapeparams
変数に異なる値を指定できます。以前の動作を必要とするアプリケーションでは、escapeparams
変数をFalse
に設定した構成セクションを指定します。新しい動作を必要とする(または許容する)アプリケーションでは、escapeparams
変数をTrue
に設定した構成セクションを指定します。
独自のテンプレートHTMLファイルを作成する場合は、次の点に留意してください。
escapeparams
変数(%
がHTMLデリミタ文字の場合は文字列%escapeparams%
)への参照がserverArgs
アプレット・パラメータ値の最初の部分に表示され、空白が続くように設定することをお薦めします (例については、付属のbase.htmファイルを参照)。
escapeparams
変数への参照が、テンプレートHTMLファイルの他の部分に表示されないよう注意してください。serverArgs
アプレット・パラメータの値を引用符ではなくアポストロフィで囲む場合は、テンプレートHTMLファイル内のランフォーム・パラメータの値の内部でアポストロフィをエスケープする(%27)必要があります。引用符にはエスケープ・シーケンスは不要です。
serverArgs
アプレット・パラメータ値の先頭からescapeparams
変数への参照を省略することが可能です。これにより、構成ファイルでescapeparams
変数に指定した値に関係なく、以前のリリースの動作が得られます。
静的HTMLを使用してランフォーム・エンジンを呼び出し、最新リリースの動作を取得する場合は、特定の手順に従う必要があります。
基本的な規則として、静的HTMLがForms Servletで生成されたHTMLのように見える必要があります。具体的には、serverArgs
アプレット・パラメータの値を文字列escapeparams=true
で開始する必要があります(大/小文字の区別なし)。
さらに、serverArgs
アプレット・パラメータ値の各name=valueペアの値部分で、表3-4に示すURLエスケープ・シーケンスによって特定の文字を指定する必要があります。
表3-4 静的HTMLページのURLエスケープ・シーケンス
エスケープが必要な文字 | URLエスケープ・シーケンス |
---|---|
改行' \n ' |
%0a |
空白' ' |
%20 |
引用符' " ' |
%22 |
パーセント' % ' |
%25 |
アポストロフィ' ' ' |
%27 |
左カッコ' ( ' |
%28 |
右カッコ' ) ' |
%29 |
name=value
ペアの値部分に使用されている他の7ビットASCII文字をエスケープすることもできます。
静的HTMLでのserverArgs
アプレット・パラメータの書式の例を次に示します。この例は、my formという名前のフォームに関するものです。ここでは、値foo'barがユーザー定義パラメータmyparam
に渡されます。
<PARAM NAME="serverArgs" VALUE="escapeparams=true module=my%20form userid=scott/tiger@mydb myparam=foo%27bar">
次のURLにアクセスすると、リスナー・サーブレットのテスト・ページを表示できます。
http://<
hostname
>:<
port
>/forms/frmservlet/admin
表示される情報は、初期化パラメータTestMode
の値に依存します。このパラメータは$DOMAIN_HOME/servers/WLS_FORMS/tmp/_WL_user/formsapp_11.1.1/<random_string>/war/WEB-INF
/web.xml
ファイルで設定します。次に例を示します。
<init-param> <!-- Display sensitive options on the /admin page ? --> <param-name>TestMode</param-name> <param-value>true</param-value> </init-param>
Oracle Formsアプリケーションは、Sun社のJava Plug-inを使用するとWeb上で表示できます。今後のパッチのリリースによっては、他の仮想マシンもサポートできます。
サポートされている最新のプラットフォームなど、クライアント・ブラウザ・サポートの詳細は、Forms Developerのメニューから「ヘルプ」、「OTN上のForms」の順に選択し、クライアント・プラットフォームに関する指示書を参照してください。
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
のOTNにも、証明に関する情報があります。
ユーザーがWeb対応のアプリケーションを起動すると(アプリケーションのURLへのリンクをクリックすることで)、Formsサーブレットは次の処理を実行します。
使用しているブラウザを検出します。
表3-5に示すように、適切なベースHTMLファイルを選択します。
ベースHTMLファイル内の変数(%variablename%)が、Formsのservlet.initArgs
ファイルやformsweb.cfg
ファイルに指定された適切なパラメータ値や、URLリクエストがある場合はその問合せパラメータの値で置換されます。
HTMLファイルをユーザーのブラウザに送信します。
Mozilla 3.xでFormsとSingle Sign-Onを使用する場合は、OracleサイトでCookieを必ず有効にしておきます。Cookieを有効にするには、次の手順を実行します。
Mozilla Firefoxを開いて「ツール」メニューを選択します。
「オプション」→「プライバシ」を選択します。
「サイトから送られてきたCookieを保存する」ボックスを選択します。
他のブラウザではこの手順を実行する必要はありません。
Mozillaでのデフォルト・ブラウザ設定の詳細は、http://www.mozilla.com
を参照してください。