0

GWTを使用してWebユーザーインターフェイスを作成しています。これは、既存のWebプラットフォームのUIを「カバー」する必要があります(元のUIを制御することはできませんが、同じサーバーで作業できます)。そこで、リクエストを行います。HTMLを解析して、UIに表示する必要のある情報を選択する必要があるよりも、古いUIからHTMLを取得しました。この最後のステップ(HTMLからの情報の解析と抽出)を実行するための最良の方法は何ですか?

4

2 に答える 2

1

GWTクライアントでHTMLの解析を行わないでください。

プロキシサーブレットを設定する必要があります。プロキシサーブレットは、GWTクライアントに代わってレガシー(古い)HTMLアプリケーションにアクセスします。プロキシは、GWTクライアントのメインサーブレットとしても機能します。

プロセスフロー

  1. アプリケーションコンテキストは、ブラウザにGWTアプリケーションを提供します。

  2. アプリケーションコンテキストは、サービスリスナー/レガシーを準備します。

  3. ブラウザで実行されているGWTアプリはウィジェットを準備します。

  4. GWTアプリはデータのリクエストを/legacy/ Patient/476854に送信します。

  5. プロキシ/サービスサーブレットはリクエスト/legacy/ Patient/476854に応答します

  6. プロキシ/サービスサーブレットは、データを取得する場所を決定します。

  7. プロキシ/サービスサーブレットは、ほとんどのデータが従来の患者情報アプリ// hello:8888 // SantaClaus?patient=476854からのものであると判断します。

  8. Proxy / Serviceサーブレットは、// hello:8888 // SantaClaus?patient=476854へのhttpリクエストを起動します。

  9. プロキシ/サービスサーブレットは、// hello:8888 // SantaClaus?patient=476854から応答を受信します。応答を解析してマッサージします。より多くのもので応答を飾ります。応答全体をJSONとしてエンコードし(または情報をRPC POJOとしてカプセル化し)、応答としてGWTクライアントに送信します。

  10. GWTクライアント要求-コールバックがトリガーされ、RESTまたはRPC要求を送信して応答を返したGWTクライアントとして動作します。データを解釈し、準備したウィジェットに表示します。

プロキシサーブレットとは何ですか?

私が説明したプロキシサーブレットは、通常のhttpプロキシではありません。むしろ、RESTまたはRPCサービスを提供する通常のサーブレットです。これは、httpクライアントがhttpに対応していないレガシー/ミドルウェアアプリにアクセスできるようにするためのプロキシであるため、プロキシと呼んでいます。

サーブレットはhttpリクエストを受け入れ、それらをレガシーアプリケーションの呼び出しに変換します。多くのレガシーアプリは古いVMS、IBM VM、またはアプリがターミナルエントリのみを受け入れるSperry / Unisysで作成されているため、多くの場合、ターミナルエミュレーターの作成が必要になる場合があります。そのためのターミナルエミュレーションライブラリがあります。

幸い、サービスはターミナルemuを実行する必要はありませんが、あるhttpリクエストを別のhttpリクエストに変換するだけです。

私がお勧めするのは、宣言したサービスインターフェイスに対応するhttpリクエストをリッスンするRESTリスナーサーブレットにJAX-RS(RestEasyまたはJersey)を使用することです。リスナーは、インターフェースの実装を自発的にトリガーします。インターフェイスimplには、レガシーアプリをトリガー/呼び出し/ダイヤルインし、そのデータを応答として変換するルーチンが含まれます。

GWTを使用するJAX-RSについては、http://h2g2java.blessedgeek.com/2011/12/gwt-with-jax-rs-aka-rpcrest-part-1.htmlを参照してください。

于 2012-08-01T22:50:43.247 に答える
0

あなたGWTはレベルで行くために使用することができDOMます。

https://developers.google.com/web-toolkit/doc/latest/DevGuideUiDom

私があなたの質問を本当に理解したかどうかはわかりません。

于 2012-08-01T13:49:17.820 に答える