HTML5 forms サービスプロキシは、送信サービスのためのプロキシを登録する設定です。サービスプロキシを設定するには、リクエストパラメーター submissionServiceProxy を使って送信サービスの URL を指定します。
サービスプロキシを使用すると、次のことがなくなります。
HTML5 forms は次のトポロジーを使用して LiveCycle サーバーに接続します。
HTML5 forms サービスプロキシのトポロジー
HTML5 forms は AEM サーバーに接続して、サービス側スクリプト、Web サービス、および送信を実行します。HTML5 forms の XFA ランタイムは、AEM サーバーに接続するためのさまざまなパラメーターを付けて、「/bin/xfaforms/submitaction」エンドポイントで Ajax コールを使用します。HTML5 forms は AEM サーバーに接続して、次の操作を実行します。
サーバー上で実行するようにマークされているスクリプトは「サーバー側スクリプト」といいます。次の表に、サーバー側スクリプトと Web サービスで使用されるすべてのパラメーターを示します。
パラメーター |
説明 |
activity |
activity は、リクエストをトリガーするイベントを指定します。例えば、クリック、終了、または変更など |
contextSom |
contextSom は、イベントが実行されるオブジェクトの SOM 式を指定します。 |
テンプレート |
Template は、フォームをレンダリングするために使用するテンプレートを指定します。 |
contentRoot |
contentRoot は、フォームをレンダリングするために使用するテンプレートルートディレクトリを指定します。 |
データ |
Data は、フォームをレンダリングするために使用するデータバイトを指定します。 |
formDom |
formDom は、HTML5 forms の DOM を JSON 形式で指定します。 |
packet |
packet は、フォームとして指定されます。 |
debugDir |
debugDir は、フォームをレンダリングするために使用するデバッグディレクトリを指定します。 |
送信ボタンをクリックすると、HTML5 forms はデータをサーバーに送信します。HTML5 forms がサーバーに送信するすべてのパラメーターを下表に示します。
パラメーター |
説明 |
テンプレート |
フォームをレンダリングするために使用するテンプレート。 |
contentRoot |
フォームをレンダリングするために使用するテンプレートルートディレクトリ。 |
データ |
フォームをレンダリングするために使用するデータバイト。 |
formDom |
HTML5 forms の DOM を JSON 形式で指定します。 |
submiturl |
データ XML が投稿される URL。 |
debugDir |
フォームをレンダリングするために使用するデバッグディレクトリ。 |
送信サービスプロキシは、submiturl がリクエストパラメーター内には存在しないようにパスとして機能します。これはパススルーとして機能します。これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
送信サービスプロキシは、submiturl がリクエストパラメーター内に存在する場合は、トポロジーを選択します。
AEM サーバーがデータを投稿する場合、プロキシサーバーはパススルーとして機能します。これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
プロキシがデータを投稿する場合、プロキシサービスは、submitUrl を除くすべてのパラメーターを /bin/xfaforms/submitaction エンドポイントで、応答ストリームの xml バイトを受け取ります。 次に、プロキシサービスはデータ xml バイトを submitUrl に投稿して処理します。
データ(POST リクエスト)をサーバーに送信する前に、HTML5 forms はサーバーに接続していて使用できることを確認します。接続と可用性を確認するために、HTML forms は空のヘッドリクエストをサーバーに送信します。サーバーが使用できる場合は、HTML5 forms はデータ(POST リクエスト)をサーバーに送信します。サーバーが使用できない場合は、エラーメッセージが表示され、 サーバーに接続できませんでした。 が表示されます。 この事前の検出により、ユーザーがフォームに再記入するなどの問題を回避できます。プロキシサーブレットは head リクエストを処理し、例外をスローしません。