HTML5 forms サービスプロキシは、送信サービスのためのプロキシを登録する設定です。サービスプロキシを設定するには、リクエストパラメーター submissionServiceProxy を使って送信サービスの URL を指定します。

サービスプロキシの利点

サービスプロキシは次の問題点を解消します。
  • HTML5 forms ワークフローでは、HTML5 forms ユーザーに対して送信サービス「//content/xfaforms/submission/default」を開く必要があります。これにより、AEM サーバーは意図しない多くの閲覧者にさらされてしまいます。 
  • サービス URL は、フォームのランタイムモデルに埋め込まれます。サービス URL パスを変更することは不可能です。
  • 送信は 2 手順のプロセスです。フォームデータを送信するために、送信はサーバーに対して少なくとも 2 つのジャーニーを必要とします。したがって、サーバーでの負荷が増大します。
  • HTML5 forms は、PDF リクエストの代わりに POST リクエストでデータを送信します。PDF と HTML5 forms の両方が関与するワークフローの場合、2 つの異なる方法による送信処理が必要となります。

トポロジー

HTML5 forms は次のトポロジーを使用して LiveCycle サーバーに接続します。

  • AEM サーバーまたは HTML5 forms が POST を使ってデータをサーバーに送信するトポロジー。
  • プロキシサーバーが POST データをサーバーに送信するトポロジー。
HTML5 forms サービスプロキシのトポロジー
HTML5 forms サービスプロキシのトポロジー

HTML5 forms は AEM サーバーに接続して、サービス側スクリプト、Web サービス、および送信を実行します。HTML5 forms の XFA ランタイムは、AEM サーバーに接続するためのさまざまなパラメーターを付けて、「//bin/xfaforms/submitaction」エンドポイントで Ajax コールを使用します。HTML5 forms は AEM サーバーに接続して、次の操作を実行します。

サーバー側スクリプトと Web サービスの実行

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

パラメーター

詳細

activity

activity は、リクエストをトリガーするイベントを指定します。例えば、クリック、終了、または変更など

contextSom

contextSom は、イベントが実行されるオブジェクトの SOM 式を指定します。

テンプレート

Template は、フォームをレンダリングするために使用するテンプレートを指定します。

contentRoot

contentRoot は、フォームをレンダリングするために使用するテンプレートルートディレクトリを指定します。

Data

Data は、フォームをレンダリングするために使用するデータバイトを指定します。

formDom

formDom は、HTML5 forms の DOM を JSON 形式で指定します。

packet

packet は、フォームとして指定されます。

debugDir

debugDir は、フォームをレンダリングするために使用するデバッグディレクトリを指定します。

データの送信

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

パラメーター

詳細

テンプレート

フォームをレンダリングするために使用するテンプレート。

contentRoot

フォームをレンダリングするために使用するテンプレートルートディレクトリ。

Data

フォームをレンダリングするために使用するデータバイト。

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

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー