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 forms サービスプロキシのトポロジー

HTML5 フォームは AEM サーバーに接続して、サーバーサイドのスクリプト、web サービスおよび送信を実行します。HTML5 フォームの XFA ランタイムは、様々なパラメーターを使用して「/bin/xfaforms/submitaction」エンドポイントに対して Ajax 呼び出しを行い、AEM サーバーに接続します。HTML5 フォームは AEM サーバーに接続して、次の操作を実行します。

サーバーサイドスクリプトと web サービスを実行 execute-server-sided-scripts-and-web-services

サーバー上で実行するようにマークされているスクリプトは、「サーバーサイドスクリプト」と呼ばれます。サーバーサイドスクリプトと web サービスで使用されるすべてのパラメーターを下表に示します。

パラメーター
説明
activity
activity は、リクエストをトリガーするイベントを指定します。例:クリック、終了、変更など
contextSom
contextSom は、イベントが実行されるオブジェクトの SOM 式を指定します。
テンプレート
Template は、フォームをレンダリングするために使用するテンプレートを指定します。
contentRoot
contentRoot は、フォームをレンダリングするために使用するテンプレートルートディレクトリを指定します。
データ
Data は、フォームをレンダリングするために使用するデータバイトを指定します。
formDom
formDom は、HTML5 フォームの DOM を JSON 形式で指定します。
packet
packet は、フォームとして指定されます。
debugDir
debugDir は、フォームをレンダリングするために使用するデバッグディレクトリを指定します。

データを送信 submit-data

「送信」ボタンをクリックすると、HTML5 フォームはデータをサーバーに送信します。HTML5 フォームがサーバーに送信するすべてのパラメーターを次の表に示します。

パラメーター
説明
テンプレート
フォームをレンダリングするために使用するテンプレート。
contentRoot
フォームをレンダリングするために使用するテンプレートルートディレクトリ。
データ
フォームをレンダリングするために使用するデータバイト。
formDom
JSON 形式の HTML5 フォームの DOM。
submiturl
データ XML が投稿される URL。
debugDir
フォームをレンダリングするために使用するデバッグディレクトリ。

送信プロキシはどのように機能しますか? 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 リクエスト)をサーバーに送信します。サーバーが使用できない場合は、エラーメッセージ「サーバーに接続できませんでした」が表示されます。この事前の検出により、ユーザーがフォームに再記入するなどの問題を回避できます。プロキシサーブレットがヘッドリクエストを処理し、例外をスローしません。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2