2011-06-29 7 views
0

私はEclipseでVaadinフレームワークを使ってアプリケーションを開発しています。私はTomcat v6.0サーブレットを使用しており、Eclipse Web Browserでアプリケーションを実行しています。私が行ってきた問題は、アプリケーションをテストするときにブラウザに最近の変更が表示されることです。Eclipse Webブラウザでコードの変更を高速化するには?

何度もTomcatを再起動しても、公開されているすべてのリソースを消去してEclipse Webブラウザを再起動しても、変更は有効になりません。この変更は、時間が最大の要因である場合にランダムに発生するように見えます。これは発展途上の大きな不満です。

他の誰かがこの問題に気づき、それを解決する方法があれば私がやることができる設定がありますか、または変更がブロックされる再開のステップが失われていたら...?

ご協力いただければ幸いです!

+1

通常のWebブラウザで変更が行われますか? – Giann

+0

あなたはサーバー側のコンポーネントの変更やクライアント側のウィジェットの変更を指していますか? Eclipseのどのバージョンですか? –

答えて

1

Vaadinでは、ほとんどのコードはサーバーで実行され、通常のJavaファイルに含まれています。リソース/クラスの変更には、次の3つのレベルがあります。

  1. 実行時の「ホットコード置換」。 Tomcatをデバッグモードで実行している場合、Webアプリケーションを再デプロイせずに一部のJavaクラスの変更を公開することができます。ただし、Tomcatが「自動公開」(Eclipseのサーバー設定をチェック)するように設定されている場合は、クラスが変更されるたびに自動的に再デプロイメントが実行され、コンテキストの再ロードとセッションのシリアル化が行われます(#2を参照)。ホットコードの置き換えは、JRebelのようなツールを使用して強化することができます。

  2. Webアプリケーションのデプロイメント。これは本質的に新しいwarファイルをサーバに配備しています。以前のバージョンをアンデプロイして、すべてのクラスとリソースの新しいバージョンをデプロイします。サーバの作業ディレクトリに残っているリソースがある場合や、クラスが再ロードされない場合があります。その場合は、サーバを再起動する必要があります(#3)。

  3. サーバーの再起動。これにより、JVM全体がリロードされ、すべてのクラスとWebアプリケーションもリロードされます。すべてが再ロードされていることを確認するには、作業ディレクトリを別々にクリーニングする必要があります。これに加えて

のTomcatによって静的リソースとして扱われVaadinのクライアント側部分(GWTでコンパイルされ、本質的にはJavaScript)が、存在します。クライアント側のJavaコードを変更すると、GWTがJavaScriptの再コンパイルに使用されます。デプロイメントは単にファイルのコピーでなければなりません。ブラウザは生成されたHTML/JSファイルをキャッシュしますが、GWTにはこれを回避するメカニズムが含まれています。

自動パブリッシングのサーバー設定を変更して、それが役立つかどうかを確認してください。また、Tomcatのバージョンが違っていることに気がつきました。これは残念ですが、あなたができる唯一のことは、あなたのために働くバージョン/設定を見つけることです。

+0

私は同じ問題を抱えています。私はkepler eclipseとtomcatを使っています。どこで自動公開を設定できますか – bumbumpaw

0

URLに?restartApplicationを追加して、ページの再読み込み時にアプリケーションを強制的に再起動するようにしましたか?

関連する問題