3

GAE にデプロイされる GWT アプリを開発しています。GWT および GAE SDK もプルダウンする Google-Eclipse プラグインをインストールしました。しかし、座って実際に物事を考えている今、自分のマシンでアプリをローカルでデバッグおよび実行する方法について非常に混乱しています。

通常、Java Web アプリケーション (Tomcat にデプロイします。Tomcat に慣れているだけです) がある場合、次のようなオプションがあります。

  • アプリのリモート デバッグ構成を作成WARし、ローカルの Tomcat コンテナーにデプロイしますが、Eclipse 内から直接デバッグ (ブレークポイントの設定、サーバー側コードのステップ実行) できるようにします。
  • Tomcat コンテナーにデプロイし、ブラウザーをhttp://localhost:8080/MyApp起動して、ローカルでアプリの使用/手動テストを開始するだけです

私は同じことを達成したいのですが、GWT と GAE には両方に非常に多くのオプションがあり、同じマシンでそれらを組み合わせると (私のような初心者にとって) 指数関数的に混乱します。

最終的には、次のことができるようになりたいと考えています。

  • ブレークポイントの設定、コードのステップ実行などを含めて、サーバー アプリを Eclipse 内から直接デバッグします。
  • Firebug や Chrome 開発者ツールなどのブラウザー プラグイン内から、自分のマシンでローカルに、ブレークポイントの設定、コードのステップ実行などを含め、クライアント アプリをデバッグします。
  • ブレークポイントの設定、コードのステップ実行などを含めて、Eclipse 内から直接アプリをデバッグします (クライアント側とサーバー側の両方のコードを並行して)。
  • 上記と同じ (クライアント側とサーバー側のアプリ全体をデバッグする) を Eclipse 内から実行しますが、サーバーは別の (リモート) マシンで実行されています。このようにして、開発マシンの Eclipse インスタンス内から直接、QA マシン/環境で実行されているアプリをデバッグできます。
  • アプリをローカルで実行し、本番環境をシミュレートします。つまり、バックエンドを GAE アプリ開発サーバーにデプロイし、ブラウザーを開いて、ローカルの GAE 開発アプリサーバーによって提供されているアプリにアクセスするための正しい URL に移動します。

私の混乱の根源は、GWT と GAE SDK の両方がいわゆる「開発モード」で実行されるという事実にあると思います。また、それらは異なる層 (クライアントとサーバー) に対処するため、セットアップ/構成が何であるかについて頭を悩ませるのは難しいです。必要に応じてそれらを分離したり、必要に応じて並行してテストしたりできるようにする必要があります。ここで何か助けてくれてありがとう!

4

2 に答える 2

6

できる限りご質問にお答えします。最近GWTのコードベースを引き継ぎ、アプリエンジンを使っているので頑張ります。

まず、サーバー側のコードは、Jetty Servlet コンテナー内の GWT SDK によって実行されます。クライアント側のコードは JavaScript にコンパイルされ、ブラウザーで実行されます。したがって、任意のサーブレット サーバー バックエンドに対してクライアント コードを非常に簡単に実行できます。したがって、「dev モード」で GAE を実行しているときは、Java をコンパイルしており、GAE dev サーブレット コンテナーで GWT エントリポイントを使用してサーブレットを実行しています。

ローカル環境のセットアップはかなり簡単です。Eclipse では、プロジェクトを右クリックして、'Run As' または 'Debug As' を実行できます。「実行構成」および「デバッグ構成」オプションでは、「Web アプリケーション」というタイトルのリストに Google アイコンが表示されます。オプションを記憶するためにプロファイルを作成する必要があります。

この構成には、いくつかのオプションがあります。適切な GAE ファイルがある場合は、[App Engine] タブに移動して、そこでオプションを構成できます。[サーバー] タブには、2 つのオプションがあります。「組み込みサーバーを実行する」オプションをチェックした場合。GWT はその Jetty コンテナーでサーブレットを実行し、GWT クライアント コード サーバーを実行します。そうでない場合は、その場でクライアント コードを変更し、Eclipse でクライアント コードをデバッグできるクライアント コード サーバーのみを実行します。Eclipse は、次のような気の利いた URL を提供します。

http://127.0.0.1:8888/index.jsp?gwt.codesvr=127.0.0.1:9997

これは実際には 2 つの部分に分かれており、組み込みの jetty サーブレット コンテナーを使用しているかどうかに関係なく、同じように見えます。

最初の部分はhttp://127.0.0.1:8888/index.jsp - これは実行中のサーブレット コンテナーです。Tomcat、Web ロジック、GWT 開発サーバー、または任意のサーブレット コンテナーで実行できます。

2 番目の部分は- これ?gwt.codesvr=127.0.0.1:9997 は GWT マジックであり、ブラウザー GWT 開発プラグインと組み合わせて使用​​すると、実行時にクライアント コードを変更し、Eclipse で Java として JavaScript をデバッグできます。

クライアント側のコードの変更のみを行っている場合は、 をhttp://127.0.0.1:8888/index.jsp 開発サーバーの URL に置き換えることがあります。http://mydevserver:1234/myapp/index.jsp?gwt.codesvr=127.0.0.1:9997 これにより、サーバー側のコードをローカルで実行することなく、クライアント コード サーバーをローカルで実行できます。gwt.codesvr パラメータを使用せずに dev サーブレットに直接アクセスすることで、dev にデプロイされたクライアント コードにアクセスできることに注意してください。

これが役立つことを願っています。ご質問があれば、この部分について詳しく説明できるかもしれません。

于 2012-09-14T13:18:58.460 に答える