2

GWT 2.5.1 SDK をダウンロードしました。私は走った:

./webAppCreator -out /home/myUser/tmp/dummygwt/ com.dummygwt.OhHai

そして、それは私のために GWT プロジェクトを作成しました。次に、次の場所に移動し/home/myUser/tmp/dummygwt/て実行しました。

ant -buildfile build.xml devmode

GWT 開発モード ツールを起動し、クリックLaunch Default Browserすると、Firefox で "OhHai" アプリが表示されました。

次に、ナビゲートし/home/myUser/tmp/dummygwt/src/com/dummygwt/server/GreetingServiceImpl.javaて編集用に開きました。GreetingServiceImpl#greetServerメソッドの戻り値を「Hello 」から「 Bonjourno 」に変更しました。このように、名前を入力して [送信] ボタンをクリックすると、ポップアップ ダイアログに [Bonjourno, ...] と表示されます。(私はただ遊んでいて、これを楽しんでいます。)

変更を保存してからGreetingServiceImpl.java(GWT Dev Mode ツール内で)、[Jetty] タブに移動してクリックするRestart Serverと、次の警告が表示されました。

00:14:25.446 [警告] サーバー クラス 'com.google.gwt.dev.shell.jetty.JDBCUnloader' が Web アプリで見つかりませんでしたが、システム クラスパスで見つかりました

00:14:25.446 [警告] クラスパス エントリ 'file:/home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/gwt-dev.jar' をこのセッションの Web アプリ クラスパスに追加します 詳細情報: ファイル:/home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/doc/helpInfo/webAppClassPath.html

ブラウザを更新し、新しい名前を入力して [送信] をクリックしました。「Bonjourno, ...」の代わりに「Hello, ...」がまだ表示されます。何か間違ったことをしていますか、それとも GWT Dev Mode ツールのバグですか? 前もって感謝します!

: 開発モード ツールを終了して (ブラウザーのタブを閉じて)、開発モードを再起動すると、サーバー側の変更が反映されます。しかし、GWT のドキュメントには、サーバー側のコードを "ホット デプロイ" するには、ツールからサーバーを再起動するだけでよいことが明確に記載されています...終了してツールを完全に再起動するのではありません...

4

3 に答える 3

4

変更を行った後、GreetingServiceImpl.java を再コンパイルする必要があるだけだと確信しています (変更を行った後に行うことについては言及していません)。サーバーを再起動しても、魔法のようにすべてが再コンパイルされるわけではありません (ただし、通常は IDE が再コンパイルします)。

hot-deploy は「hot-compile-deploy」と同じではないことに注意してください。

于 2013-06-19T21:15:56.137 に答える
3

GWT DevMode を実行すると、クライアント Java クラスの変更のみが監視されます。

任意のクライアント名前空間 (src/com/dummygwt/client または src/com/dummygwt/shared) の任意のクラスを変更し、ブラウザーでページをリロードすると、変更が表示されます。

ただし、サーバー側のクラスを変更する場合は、jetty サーバーをリロードする前にコンパイルする必要があります。

任意のテキスト エディターを使用してサーバー側 (つまり、GreetingServiceImpl.java) でクラスを変更しant javac、別のターミナルで実行すると、GreetingServiceImpl.class が更新され、最後に [サーバーの再起動] ボタンを押すと、変更が表示されます。

デフォルトでは、Eclipse は .java ファイルを .class に継続的にコンパイルするように構成されているため、Eclipse 内でクラスを編集する場合、このプロセスははるかに簡単です。そのため、サーバーをリロードするだけで十分です。

于 2013-06-20T21:27:37.000 に答える
0

名前は単純な呼び出しキャッシュであり、設定を適用するには、それをリロードする必要があります。リロードには多くの方法がありますが、1 つの魔女をピックアップするだけで簡単になります。閉じる/開くは 1 つです。終了せずに Web ブラウザーからクリーニングすることもできます。

于 2013-06-24T22:52:07.800 に答える