HTML5 forms サービスプロキシ html-forms-service-proxy
HTML5 フォームサービスプロキシは、送信サービスのためのプロキシを登録する設定です。サービスプロキシを設定するには、リクエストパラメーター submissionServiceProxy を使って送信サービスの URL を指定します。
サービスプロキシの利点 benefits-of-service-proxy-br
サービスプロキシは次の問題点を解消します。
- HTML5 フォームワークフローでは、HTML5 フォームユーザーに対して送信サービス「//content/xfaforms/submission/default」を開く必要があります。これにより、AEM サーバーは意図しない多くのオーディエンスにさらされてしまいます。
- サービス URL は、フォームのランタイムモデルに埋め込まれます。サービス URL パスを変更することはできません。
- 送信は 2 段階のプロセスです。フォームデータを送信するには、サーバーに対して少なくとも 2 回の送信が必要です。これにより、サーバーでの負荷が増大します。
- HTML5 forms は、PDF リクエストの代わりに POST リクエストでデータを送信します。PDF と HTML5 forms の両方が関与するワークフローの場合、2 つの異なる方法による送信処理が必要となります。
トポロジー topologies-br
HTML5 フォームは、次のトポロジを使用して AEM サーバーに接続します。
- AEM サーバーまたは HTML5 フォームが POST 経由でデータをサーバーに送信するトポロジ。
- プロキシサーバーが POST データをサーバーに送信するトポロジー。
HTML5 forms サービスプロキシのトポロジー
HTML5 フォームは AEM サーバーに接続して、サーバーサイドのスクリプト、web サービスおよび送信を実行します。HTML5 フォームの XFA ランタイムは、様々なパラメーターを使用して「/bin/xfaforms/submitaction」エンドポイントに対して Ajax 呼び出しを行い、AEM サーバーに接続します。HTML5 フォームは AEM サーバーに接続して、次の操作を実行します。
サーバーサイドスクリプトと web サービスを実行 execute-server-sided-scripts-and-web-services
サーバー上で実行するようにマークされているスクリプトは、「サーバーサイドスクリプト」と呼ばれます。サーバーサイドスクリプトと web サービスで使用されるすべてのパラメーターを下表に示します。
データを送信 submit-data
「送信」ボタンをクリックすると、HTML5 フォームはデータをサーバーに送信します。HTML5 フォームがサーバーに送信するすべてのパラメーターを次の表に示します。
送信プロキシはどのように機能しますか? how-nbsp-the-nbsp-submit-proxy-works
送信サービスプロキシは、submiturl がリクエストパラメーター内に存在しない場合に、パススルーとして機能します。これはパススルーとして機能します。これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
送信サービスプロキシは、submiturl がリクエストパラメーター内に存在する場合は、トポロジを選択します。
-
AEM サーバーがデータを投稿する場合、プロキシサーバーはパススルーとして機能します。これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
-
プロキシがデータを送信すると、プロキシサービスは、submitUrl を除くすべてのパラメーターを /bin/xfaforms/submitaction エンドポイントに渡し、応答ストリームで xml バイトを受け取ります。次に、プロキシサービスはデータ xml バイトを submitUrl に投稿して処理します。
-
データ(POST リクエスト)をサーバーに送信する前に、HTML5 フォームはサーバーに接続していて使用できることを確認します。接続と可用性を確認するために、HTML フォームは空の HEAD リクエストをサーバーに送信します。サーバーが使用できる場合は、HTML5 フォームはデータ(POST リクエスト)をサーバーに送信します。サーバーが使用できない場合は、エラーメッセージ「サーバーに接続できませんでした」が表示されます。この事前の検出により、ユーザーがフォームに再記入するなどの問題を回避できます。プロキシサーブレットがヘッドリクエストを処理し、例外をスローしません。