アプリケーションのデプロイ
この節の内容は以下のとおりです。
Oracle Forms Servicesのアクション
この項では、Formsサーブレットを使用して初期HTMLページを生成することを前提に、Oracle Fusion MiddlewareでForms Servicesを実行するステップと、構成ファイルを使用する方法について説明します。
ユーザーが即時利用可能なForms URLを引数なしで実行すると、Formsのバージョン番号情報が表示されたデフォルトのテスト・フォームが表示されます。この情報が表示されない方が望ましい場合、管理者は、使用環境内の(デフォルトの)構成セクションを変更するだけで、別のフォームが指定されるようにできます(または、フォームが一切指定されないようにします。この場合、ユーザーがバージョン番号が含まれるフォームを表示すかわりにそのURLを試みたときに、エラー・メッセージが表示されます)。ここでは、Weblogic管理対象サーバーがexample.comと呼ばれるコンピュータのポート7777で実行されていると想定します。また、Oracle Fusion Middlewareのインストール・プロセス時に作成した標準構成には、一切変更を行っていないことを前提にします。
ユーザーがOracle Forms Servicesアプリケーションを実行すると、次の一連のイベントが発生します。
-
ユーザーは、次のURLを使用してFormsをコールします。
http://example.com:7777/forms/frmservlet?config=myapp&form=hrapp
この例では、実行するトップ・レベルのフォーム・モジュールをhrappと呼び、myappという構成セクションを使用します。
-
Oracle HTTP Serverリスナーはリクエストを受信します。これは、URL内のパス
/forms
を検索し、WebLogicハンドラ・マッピングに基づいて正しいOracle WebLogic管理対象サーバーにリクエストを転送します。このマッピングは、forms.conf
で定義されます。ノート:
WebLogic Serverの前面におけるOracle HTTP Server (OHS)の使用はオプションです。この実行を選択するには、インストール後にforms.confを構成する必要があります。ファイルに含まれる例を適切な設定の例として使用できます。設定を保存したら、ファイルを、他の.confファイルが含まれるOHS構成ファイル・ディレクトリに移動する必要があります(「Oracle Forms Servicesを使用したOracle HTTP Serverの有効化」を参照)。
-
Oracle WebLogic管理対象サーバーは、
/forms
をコンテキスト・ルートとするOracle Forms Servicesアプリケーションにこのリクエストをマップします。次に、application.xml
ファイルで指定したfrmservletのマッピングを使用して、そのリクエストをFormsサーブレットにマップします。 -
Oracle WebLogic管理対象サーバーで実行しているFormsサーブレットが、このリクエストを処理します。このサーブレットが実行する処理は次のとおりです。
-
$DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/config
にあるこのサーブレットの構成ファイル(デフォルトではformsweb.cfg
)を開きます。 -
formsweb.cfg
ファイルで使用する構成セクションを決定します。この例では、URLには問合せパラメータconfig=myapp
が含まれているため、[myapp
]セクションが使用されます。 -
使用するベースHTMLまたはbasejnlpファイルを決定します。このときの判断基準は、(a)リクエストを発行しているブラウザ(User-Agent)、(b)ブラウザを実行しているプラットフォーム、(c)
formsweb.cfg
ファイルの各種パラメータの設定です。 -
ベースHTMLファイルを読み取り、次のように変数の置換を実行した後、HTML (またはJNLP)ページとしてユーザーのWebブラウザまたはFormsスタンドアロン・ランチャ(FSAL)にコンテンツを返します。
Formsサーブレットは変数(
%myParam%
など)を検出すると、一致するURL問合せパラメータ(&myParam=xxx
など)を検索し、そのパラメータが見つからないときはformsweb.cfg
ファイル内で一致するパラメータを検索します。一致するパラメータが見つかると、変数(%myParam%
)はそのパラメータの値で置換されます。この例では、ベースHTMLファイルにはテキスト
%form%
が記述されています。このテキストが値hrappに置き換わります。
-
-
FormsサーブレットがどのベースHTMLファイルを選択したかに応じて、クライアントに送り返されるHTMLページには、Formsアプレットを起動するapplet、object、embedまたはjnlpタグが含まれます。Formsクライアントは、リクエスト・タイプに応じて、Oracle Javaプラグイン、Web StartまたはスタンドアロンJava実行可能ファイルによって提供されるJVM環境内で動作します。
-
Formsアプレットを起動するには、そのJavaコードを最初にロードしておく必要があります。アプレットの場所は、アプレットのコードベースとアーカイブ・パラメータで指定されます。
/forms/java
のweblogic.xml
ファイルにある仮想パスの定義により、Webサーバーからアプレット・コードをロードできます。ノート: Formsアプレット・コードがネットワークを介してロードされるのは、ユーザーがOracle Forms Servicesアプリケーションを最初に実行したとき、または、新しいバージョンのOracle Forms ServicesがWebサーバーにインストールされたときのみです。それ以外の場合は、ローカル・ディスクにあるJavaキャッシュからロードされます。
-
Oracle Forms Servicesアプレットが実行されると、URL
http://example.com:7777/forms/lservlet
にあるFormsリスナー・サーブレットに接続してFormsセッションを起動します。 -
Oracle HTTP Serverリスナーはリクエストを受信します。このFormsリスナー・サーブレット用の
web.xml
ファイルにあるサーブレット・マッピングにパス/forms/lservlet
が一致することから、このリクエストをOracle WebLogic管理対象サーバーに転送します。 -
Formsリスナー・サーブレット(lservlet)は、FormsセッションのFormsランタイム・プロセス(
frmweb.exe
またはfrmweb
)を起動します。 -
FormsアプレットとFormsランタイム・プロセス間の通信は、Formsセッションが終了するまでリスナー・サーブレットを介して継続します。
-
URLの属性値(実行するフォーム名など)がFormsランタイム・プロセスに渡されます。ベースHTMLファイルのserverArgs値にある
%form%
はhrappに置き換わります。そのため、このランタイム・プロセスはファイルhrapp.fmxのフォームを実行します。このファイルは、環境ファイル(デフォルトでは
default.env
)で定義されたFORMS_PATH
環境設定に指定されているディレクトリのいずれかに格納されている必要があります。 -
Formsセッションは、次のいずれかが起きた場合に終了します。
-
トップ・レベルのフォームが終了した場合(exit_form組込み関数をコールするPL/SQLトリガー・コードなどにより)。この場合、保存していない変更があれば、ユーザーはその変更を保存するように指示されます。
exit_form(no_validate)
を指定している場合は、この指示が表示されずにフォームが終了します。 -
ユーザーが保留中の変更を保存せずにセッションを終了すると、変更内容はすべて失われます。
-
アプリケーション・デプロイメント
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が実行される仕組みの詳細は、「Oracle Forms Servicesのアクション」を参照してください。
内容は次のとおりです。
パラメータの指定
Oracle Forms Servicesアプリケーションにパラメータ値を事前定義するには、2つの方法があります。次の方法でパラメータを定義できます。
-
Fusion Middleware Controlの「Web構成」ページのデフォルト・セクションで、アプリケーション設定を編集します。デフォルトの構成セクションには、Oracle Forms Servicesで使用するデフォルト値が表示されます。
-
名前を付けたアプリケーションの構成セクションで、他のシステム・パラメータとユーザー・パラメータの値を管理(追加、編集、コピー、削除)します(「Fusion Middleware Controlでの構成セクションの作成」を参照)。たとえば、
myApp
用に作成した構成セクションで、次の表に示すパラメータおよびその値を追加または変更できます。表-3 構成セクションの例: myAppのパラメータ値
パラメータ名 パラメータ値 baseHTML
mybase.htm
baseHTMLjpi
mybasejpi.htm
form
hrapp.fmx
userid
scott/tiger@orcl
ノート:
「Web構成」の名前付き構成セクションで指定したパラメータは、デフォルト・セクションの設定をオーバーライドします。
ノート:
システム・パラメータは、ユーザー・パラメータとは異なりURLにおいてオーバーライドできません。
Fusion Middleware Controlでの構成セクションの作成
アプリケーションのデプロイのステップ2で作成した構成セクションで、Oracle Forms Servicesアプリケーションのパラメータを指定できます。「Web構成」ページのデフォルト・セクションで使用可能なアプリケーションおよびシステム・パラメータを任意で指定できます。
たとえば、lookAndFeel
パラメータをoracle
の値に設定し、「適用」をクリックすると、アプリケーションのルック・アンド・フィールをOracleのルック・アンド・フィールに設定できます。
また、名前付き構成セクションのデフォルトのパラメータ値をオーバーライドすることもできます。たとえば、アプリケーションへの接続情報を<username>/<password>@orcl
として事前定義するには、userid
のパラメータ値を設定する必要があります。これには、名前を付けた構成セクションでuserid
のパラメータ値を<username>/<password>@orcl
に変更します。
編集可能な他のパラメータは、「Forms構成パラメータ」を参照してください。
Oracle Forms Servicesアプリケーションへのアクセスに使用するURLの編集
Oracle Forms ServicesアプリケーションにアクセスするURLにパラメータを直接入力できます。前述の例の場合、構成ファイルにform
パラメータを指定するかわりに、URLに次のように入力することもできます。
http://example.com:9001/forms/frmservlet?config=my_application&form=hrapp
アンパサンド(&)を使用すれば、フォームと名前を付けた構成パラメータの組合せをコールすることができます。前述の例では、my_applicationで指定したパラメータ設定を使用して、フォームhrappをコールしています。
ノート:
URLで指定したパラメータは、構成セクションで設定したパラメータをオーバーライドします(「アプリケーションのURLセキュリティの管理」を参照)。
ランフォーム・パラメータにおける特殊文字の指定
ランフォーム・パラメータに渡される値に特殊文字が含まれている場合は、特定の考慮事項が適用されます。この項では、こうした考慮事項について説明し、今回のリリースのデフォルト動作と前リリースのデフォルト動作を比較します。
ランフォーム・パラメータは、テンプレートHTMLファイルのserverArgsアプレット・パラメータで指定されるパラメータです。テンプレートHTMLファイルのserverArgsパラメータで指定された値は、変数の置換後に、コマンドライン・パラメータ文字列と呼ばれることもあります。これは、空白で区切られた一連のname=value
のペアで構成されます。この名前には、英数字またはアンダースコアのみが使用可能です。name=valueペアの値の部分には、任意の文字列を使用できます。
現行リリースのデフォルト動作
ランフォーム・パラメータの値は、次に示す3つの場所のいずれかで指定できます。
-
テンプレートHTMLファイル(base.htmなど)の
serverArgs
パラメータの値。 -
(1)の変数参照を(直接または再帰的に)置換する、構成ファイル(
formsweb.cfg
など)で指定された変数の値。通常、これらの値は、Fusion Middleware Controlを使用して管理します。「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ファイルの考慮事項
独自のテンプレートHTMLファイルを作成する場合は、次の点に留意してください。
escapeparams
変数(%
がHTMLデリミタ文字の場合は文字列%escapeparams%
)への参照がserverArgs
アプレット・パラメータ値の最初の部分に表示され、空白が続くように設定することをお薦めします。(例については、付属のbase.htmファイルを参照)。
escapeparams
変数への参照が、テンプレートHTMLファイルの他の部分に表示されないよう注意してください。serverArgs
アプレット・パラメータの値を引用符ではなくアポストロフィで囲む場合は、テンプレートHTMLファイル内のランフォーム・パラメータの値の内部でアポストロフィをエスケープする(%27)必要があります。引用符にはエスケープ・シーケンスは不要です。
serverArgs
アプレット・パラメータ値の先頭からescapeparams
変数への参照を省略することが可能です。これにより、構成ファイルでescapeparams
変数に指定した値に関係なく、以前のリリースの動作が得られます。
静的HTMLページの考慮事項
ノート:
静的HTMLまたはJNLPの使用はお薦めしません。Formsアプリケーションに対するコールはすべて、Formsサーブレット(frmservlet
)を介してルーティングすることをお薦めします。これを行わないと、予期しない動作が発生することがあります。
基本的な規則として、静的HTMLがForms Servletで生成されたHTMLのように見える必要があります。具体的には、serverArgs
アプレット・パラメータの値を文字列escapeparams=true
で開始する必要があります(大/小文字の区別なし)。
さらに、serverArgs
アプレット・パラメータ値の各name=valueペアの値部分で、次の表に示すURLエスケープ・シーケンスによって特定の文字を指定する必要があります。
表-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">
クライアント構成
Oracle Formsには、複数のクライアント構成オプションが用意されています。要件に基づいてオプションを選択します。
formsweb.cfg
ファイルに提供されています。
また、クライアント構成オプションでサポートされているブラウザに関する情報については、「ブラウザに関する考慮事項」を確認してください。
HTMLに埋め込まれたJavaアプレット
これはデフォルト構成であり、Formsアプリケーション(アプレット)がWebページに埋め込まれているように見せます。
これはFormsアプリケーションを囲むHTMLコンテンツに関連情報または統合情報が含まれている場合に役立ちます。これは、Forms JavaScript統合機能を使用する場合にも役立ちます。この構成では、シングル・サインオンとシングル・サインオフがサポートされています。
この構成を使用するには、Java Plug-inと、Java Plug-inをサポートする動作保証済ブラウザが必要です。
ブラウザにhttps://example.com/forms/frmservletやhttps://example.com/forms/frmservlet?config=defaultなどのURLを入力します。
表-5 HTMLに埋め込まれたJavaアプレットのパラメータ
タイプ | パラメータ |
---|---|
WebUtil非対応のForms |
|
WebUtil対応のForms |
|
HTMLに埋め込まれたJNLP
埋込みJNLPは、埋込みアプレットと非常によく似ていますが、アプリケーションは、Webページ内に埋め込まれていても、Java Web Startアプリケーションのように扱われます。
ノート:
base-64エンコーディングは、セキュリティ・メカニズムではありません。Javaで使用され、サーバーからクライアントへの配信パフォーマンスの向上に役立ちます。この構成には、Java Plug-inと、Java Plug-inをサポートする動作保証済ブラウザが必要です。
jnlp
という名前)を使用するか、独自の構成を作成します。 https://example.com/forms/frmservlet?config=jnlp
表-6 HTMLに埋め込まれたJNLPのパラメータ
タイプ | パラメータ |
---|---|
WebUtil非対応のForms |
|
WebUtil対応のForms |
|
ノート:
埋込みJNLPの使用時に、アプリケーションでカスタムjarファイル(jacob.jar
、icons.jar
、example.jar
など)を使用している場合は、これらをextensions.jnlp
ファイルに追加します。このファイルは、ORACLE_HOME\forms\java
ディレクトリに格納されています。テキスト・エディタでこのファイルを開き、ファイルに含まれるサンプルに基づいて必要なエントリを追加します。各エントリは、そのエントリの行に追加する必要があります。
Java Web Start
Java Web Startは、半分ブラウザが不要な構成と考えられます。
Java Web Start (JWS)を使用すると、Oracle Formsアプリケーションが、Webアプリケーションではなく、ネイティブにインストールされたアプリケーションのように見えます。これは、実行時にアプリケーションがブラウザの境界に含まれないためです。これは、デバイスでPoint of Saleアプリケーションしか使用されないPoint of Saleアプリケーションの場合や、アプリケーションが全画面を使用するように設計されている場合に、推奨されることが多いです。これは通常、ブラウザレスの構成であるため、この構成を使用するときは単一のサインオフ・イベントはサポートされません。
JWSに対するJavaScript統合サポートは、デフォルトでは存在しません。ただし、提供されたアドオンおよびサード・パーティ・ライブラリ(Eclipse/Jetty)でJS統合が有効化されます。詳細は、「Java Web StartとFormsスタンドアロン・ランチャに対するフォームとJavaScript統合」を参照してください。
separateFrame=true
を使用して提供される機能(HTMLに埋め込まれたJNLPおよびHTML構成に埋め込まれたJavaアプレットでのみ使用可能)とは異なり、Web Startを使用すると、アプリケーションのコールに使用されるブラウザ・ウィンドウを、起動後に閉じたり、ブラウザをまったく使用しないようにすることができます。Oracle FormsでJava Web Startを使用すると、ハイパーリンクを使用するかURLを直接入力して、アプリケーションをブラウザからコールできます。または、エンドユーザーのマシンに格納されているJNLPファイルからアプリケーションを実行できます。この方法により、アプリケーションがシングル・サインオンで保護される場合を除いて、ブラウザが不要になります。Java Web Startを使用して、コマンドラインからOracle Formsアプリケーションをコールすることもできます。Java Web Startの使用方法には複数のバリエーションがありますが、アプリケーションでシングル・サインオンを使用する必要がある場合は、ブラウザからコールする必要があります。静的JNLPファイルまたはコマンドラインから、SSOで保護されたアプリケーションをコールしようとすると、失敗します。
ブラウザからコールする場合、この構成にはJava Plug-inがインストールされている必要があります。ブラウザからコールしない場合は、Java Plug-inまたはJava Development Kit (JDK)をインストールする必要があります。ブラウザはオプションであり、シングル・サインオンを使用する場合にのみ必要です。
この構成を使用するには、用意されている構成例(webstart
という名前)を使用するか、独自の構成を作成します。アプリケーションは、ブラウザからコールするか、コマンドラインまたはカスタム・スクリプトを使用できます。
jnlps://example.com/forms/frmservlet?config=webstart
https://example.com/forms/frmservlet?config=webstart
javaws “https://example.com/forms/frmservlet?config=webstart”
ノート:
例で使用されているnlp
およびjnlps
プロトコルは、Microsoft Windows上のJava 8u92+でサポートされています。また、JNLP://
またはJNLPS://
プロトコルを使用して起動する場合、SSOはサポートされません。
表-7 Java Web Startのパラメータ
タイプ | パラメータ |
---|---|
WebUtil非対応のForms |
|
WebUtil対応のForms |
|
ノート:
Java Web Startの使用時に、アプリケーションでカスタムjarファイル(jacob.jar
、icons.jar
、example.jar
など)を使用している場合は、これらをextensions.jnlp
ファイルに追加します。このファイルは、ORACLE_HOME\forms\java
ディレクトリにあります。テキスト・エディタでこのファイルを開き、ファイルに含まれるサンプルに基づいて必要なエントリを追加します。各エントリは、そのエントリの行に追加する必要があります。
Formsスタンドアロン・ランチャ
Formsスタンドアロン・ランチャ(スタンドアロンまたはFSALとも呼ばれる)を使用すると、エンド・ユーザーはForms 12cアプリケーションを新しい方法で実行できます。ブラウザレスの最新のインタフェースが提供されます。
FSALを使用すると、ネイティブ・アプリケーションの外観と機能が提供されます。アプリケーションは独自のウィンドウで実行され、集中管理されたアプリケーション・サーバー(WebLogic Serverなど)でホストされます。これにより、Formsアプリケーション・モジュールはこのリモート中間層サーバーに安全に格納されます。ユーザーは、FMX、MMX、PLXなどのリモート・サーバー上にあるFormsモジュールに直接アクセスすることはできませんが、URLを使用してこれらのアプリケーションを実行できます。
FSALを使用すると、ブラウザの使用時に有効化されるイベント駆動型のシングル・サインオフのサポートを除いて、ブラウザでフォームを実行するときに使用できる機能と同じ機能が提供されます。
FSALに対するJavaScript統合サポートは、デフォルトでは存在しません。ただし、提供されたアドオンおよびサード・パーティ・ライブラリ(Eclipse/Jetty)でJS統合が有効化されます。詳細は、「Java Web StartとFormsスタンドアロン・ランチャに対するフォームとJavaScript統合」を参照してください。
要件
frmsal.jar
- このファイルはFormsスタンドアロン・ランチャであり、エンド・ユーザー・マシン、できればユーザーのホーム・ディレクトリに格納する必要があります。あるいは、ユーザーが自分のマシンの他のディレクトリへのアクセス権を持つ場合は、ファイルをそのディレクトリに格納できます。ファイルは、ORACLE_HOME\forms\java
ディレクトリのサーバーにステージングされます。ファイルは、適切な方法(Webダウンロード、電子メールまたはftpなど)を使用してエンド・ユーザーのマシンに転送できます。このファイルはバージョン固有であり、他のFormsバージョンまたはパッチ・レベルで使用することはできません。チェックサムは、ランチャ(
frmsal.jar
)ファイルがサーバーとそのFormsバージョンと正しく一致していること、および誤って置き換えられていないか、悪意がある方法で置き換えられていないことを確認するために使用されます。そのため、Windowsサーバーからfrmsal.jar
をダウンロードして、UNIXサーバーに対してアプリケーションを実行するために使用することはできません。FSALは、Windows、Unix、Linux、またはApple Macで使用できます。基本的に、Oracle Javaの実行をサポートする任意のプラットフォームです。
すべてのインストールに、ランチャの使用方法を説明し、
frmsal.jar
ファイルのダウンロード・リンクを指定する使用方法のページが含まれます。管理者は、必要に応じてこのページを無効化、削除または編集できます。https://example.com/forms/html/fsal.htm
に移動してページを表示します。- Java - FSALはJavaアプリケーションであるため、ユーザーのマシンにはOracle Javaが必要です。FSALは、Javaアプリケーションの実行をサポートし、Formsのバージョンに対して動作保証されているすべてのOracle Javaディストリビューションの使用をサポートします。Fusion Middleware動作保証ガイドを参照して、使用する必要のあるバージョンが、使用しているFormsバージョンに対して動作保証されていることを確認してください。
いくつかの使用可能なJavaディストリビューション・タイプがあります。アプリケーションのニーズに応じて、選択するディストリビューションは異なる場合があります。本番環境に移行する前に、選択したOracle Javaインストールの内容を確認し、アプリケーションを十分にテストすることをお薦めします。ほとんどのエンド・ユーザー・プラットフォームで使用可能で、FSALの実行に使用できるディストリビューションは、次のとおりです:
- JRE (Java Runtime Environment) - JREでは、通常のエンド・ユーザーに必要なほとんどのコンポーネントがインストールされます。これには、ローカルJavaアプリケーションの実行に必要なすべてに加えて、Java Web StartやJava Plug-inなどのJavaデプロイメント・コンポーネントも含まれます。Javaデプロイメント・コンポーネントは、Java 8より後のリリースでは使用できない可能性があります。
- JDK (Java Development Kit) - JDKはJava開発者向けで、通常、ユーザーが必要とする以上のコンポーネントが含まれています。JDKには、Javaアプリケーションを開発、デバッグおよび監視するためのJREおよびその他のツールが含まれています。
- サーバーJRE (Java 8のみ) - サーバーJREは、主にJavaアプリケーションをサーバーにデプロイするために使用します。これには、JVMモニタリングおよびサーバー・アプリケーションのツールが含まれていますが、ブラウザ統合(Java Plug-in)、Java Web Start、自動更新またはインストーラは含まれていません。このディストリビューションは、手動で抽出する必要があるzipファイルとして提供されます。
FSALの実行
この構成を使用するには、用意されている構成例(standaloneapp
という名前)を使用するか、独自の構成を作成します。アプリケーションは、コマンドラインまたはカスタム・スクリプトからコールできます。FSALは、ブラウザと同様、実行するアプリケーションの場所を認識している必要があります。完全なFormsアプリケーションのURLを認識している必要があります。
ノート:
Java 11とFSALを使用し、アプリケーションでFormsオーディオ・サポートを使用している場合は、追加構成が必要です。ユーザーのマシンで、次のステップを完了します:
- このページからJava FXバージョン11+をダウンロードし、ファイルを抽出します。
- FSALをオーディオ・サポートとともに実行するには、起動コマンドを変更してください。次に例を示します。
java --module-path <PATH TO JFX\lib> --add-modules=javafx.media,javafx.swing --add-exports=java.desktop/sun.swing=javafx.swing -jar frmsal.jar -url "<http://SERVER:PORT/forms/frmservlet?config=standaloneapp>"
現在、URLリダイレクトまたはリライトの使用はサポートされていませんが、サーバーの構成によっては技術的に可能です。FSALは、Forms環境を指す完全修飾URLを受け取る必要があります。ハイパーリンクのかわりにデスクトップ・ショートカット、スクリプト・ファイルまたはバッチ・ファイルを使用して、アプリケーションを起動できます。
- シェル(Microsoft WindowsのDOSなど)を開き、必要なJavaバージョンがインストールされていることを確認します。
java –version
結果に、必要なJavaバージョンが示されます。示されていない場合は、システムのPATHが正しく設定されているかどうか確認します。
- ユーザーのホーム・ディレクトリ(または
frmsal.jar
ファイルが格納されているディレクトリ)に切り替えて、次のコマンドを実行します。java -jar frmsal.jar -url "https://<server>/forms/frmservlet?config=standaloneapp"
このコマンドで、<server>を使用するサーバーの詳細に置き換えます。次に例を示します。
java –jar frmsal.jar –url “https://example.com/forms/frmservlet?config=standaloneapp” –t 30000
サーバーでSSLを実行せず、HTTPを使用している場合は、推測されるhttp://をURLエントリから省略しても構いません。
standaloneapp
というタイトルの構成セクションに関連付けられたアプリケーションが実行されます。提供されている例にあるエントリが含まれているすべての構成セクションを使用できます。ノート:
SSL/TLSを使用している場合は、アプリケーションの実行前に、必要に応じて証明書をユーザーのJavaキーストアにインポートします。 - アプリケーションの起動に使用されるシェルに、出力が表示されます。シェルを閉じるとアプリケーションが終了するため、セッション存続中は、シェルを開いたままにしてください。
ノート:
この動作は、様々なシェル・コマンドや関連するスイッチを使用してニーズに対応できるように変更できます。プラットフォームでのコマンド・シェルの使用の詳細は、オペレーティング・システムのドキュメントを参照してください。
コマンドライン引数
引数 | 説明 |
---|---|
-url |
Forms環境を示す完全修飾Webアドレスを表し、構成名を含めます。構成が含まれない場合は、デフォルトの構成が使用されます。引用符("")で囲んで、URLを指定してください。 これは必須の引数です。 |
-t |
タイムアウトするまでにサーバーの応答をランチャが待機する時間(ミリ秒)を指定します。値は整数である必要があります。 これはオプションの引数です。 デフォルト: |
-showConfig |
コンソールでサーバーから受信した構成パラメータを表示するかどうかを指定します。
これはオプションの引数です。 デフォルト: |
ブラウザに関する考慮事項
次のリンクでは、クライアント・ブラウザ、Javaバージョンおよびサポートされている最新のプラットフォームの詳細を参照できます。また、Oracle Java Plug-inを使用してOracle Formsアプリケーションを表示することもできます。
-
Oracleサポート:
https://support.oracle.com
を参照してください。 -
製品動作保証の要件に関するドキュメント: Oracle Fusion Middlewareでサポートされるシステム構成を参照してください。
-
システム要件: Oracle Fusion Middlewareのシステム要件と仕様を参照してください。
ブラウザからOracle Formsアプリケーションをリクエスト(たとえば、アプリケーションのURLへのリンクをクリック)すると、Formsサーブレットにより、次の処理が行われます。
-
使用しているブラウザを検出します。
-
次の表を使用して、適切なベースHTMLファイルを選択します。
表-8 ベースHTMLファイルの説明
検出されたブラウザ 使用されるベースHTMLファイル Internet Explorer
basejpi.htm
Mozilla FireFox
basejpi.htm
その他すべてのブラウザとMacintoshクライアント
base.htm
-
ベースHTMLファイル内の変数(%variablename%)が、Formsの
servlet.initArgs
ファイルやformsweb.cfg
ファイルに指定された適切なパラメータ値や、URLリクエストがある場合はその問合せパラメータの値で置換されます。 -
HTMLファイルをユーザーのブラウザに送信します。
ノート:
Internet ExplorerのみがJavaプラグインの使用をサポートするため、ブラウザに埋め込まれたFormsアプリケーションの実行を許可する唯一のクライアント構成を提供します。他のブラウザは、Java Web Startを使用するように構成されたアプリケーションの起動で使用できます。