2

私は最近、バグを修正し、長年の多くの貢献者/開発者がいる GWT アプリケーションのスイートに追加する必要がある新しい仕事を始めました :(

App Server: Tomcat 6.0.16
JRE:        Java 6
GWT:        2.5.0
Eclipse:    Juno

この構成の奇妙な点は、スイート内の各アプリケーション (約 4 つ) に対して、クライアント側のコードが独自の war ファイルに分割され、サーバー側のコードがいくつかの war ファイルに分割されていることです。問題は、さまざまなコンポーネント (war ファイル) が相互に依存しており、実行時に相互作用することです。


リクエスト

基本的に、サーバー側のデバッグは機能していますが、Eclipse を介してクライアント側のデバッグを機能させたいと考えています。これまでのところ、私はできていません。


コードのレイアウト

コードが Tomcat に完全にデプロイされると、次のようになります。

  • ウェブアプリ
    • サーバーピース1
      • WEB-INF
        • クラス
          • ...
        • web.xml
        • ...
    • サーバーピース2
      • WEB-INF
        • クラス
          • ...
        • web.xml
        • ...
    • clientApp1
      • WEB-INF
        • web.xml
      • index.html
      • ...
    • clientApp2
      • WEB-INF
        • web.xml
      • index.html
      • ...
    • clientApp3
      • WEB-INF
        • web.xml
      • index.html
      • ...

過去の経験

私の最後の仕事では、GWT と Maven を使用して開発しているチームは私のチームだけでした。アプリケーションを設計して実装することができたため、物事はシンプルに保たれました。

アプリケーションごとに、すべてのクライアント コードとサーバー コードを 1 つの WAR ファイルに保存しました。

私たちが作成したすべての共有コンポーネント (ウィンドウ管理システムなど) は JAR 化され、各アプリケーションの WAR ファイルに含まれていました。

このようにすることで、非常に単純なデバッグ セットアップが可能になりました。Tomcat または Weblogic でアプリケーションを実行しながら、Eclipse を使用してクライアント コードとサーバー コードの両方をデバッグすることができました。

4

1 に答える 1

1

GWT dev モードを外部サーバーで起動できる設定があります。詳しくはこちらをご覧ください。基本的に次のことを行います。

  1. アプリ サーバーをデバッグ モードまたは実行モードで起動します (Eclipse でバックエンド コードもデバッグするかどうかによって異なります)。
  2. オプションを使用して GWT dev モードを開始し-noserverます (これは組み込みの jetty コンテナーを開始しません)。
  3. アプリ サーバーによって提供される URL に移動します (例: http://localhost:8080/index.jsp?gwt.codesvr=localhost:9997)

Maven を使用する場合は、次のコマンドで開発モードを実行できます。mvn gwt:run -Dgwt.noserver=true

于 2012-11-16T09:12:21.883 に答える