2

IDE で「保存時にデプロイ」を有効にしても、変更が反映されるまでしばらく待つ必要があります。これは、小さな変更をデプロイするときに特に厄介です。

では、いくつかのサーブレット コンテナをメモリ内で IDE 互換の展開で実行して、展開と開発時間を短縮することは可能でしょうか? または、サーバーの依存関係 (JSP コンパイラなど) を使用して、コンテナー全体をメモリ内で実行することもできます。

(RAMDiskにTomcatをインストールできることは知っていますが、「よりネイティブな」ソリューションを探しています)

4

3 に答える 3

1

最初にできることは、デプロイ パスを webapps ディレクトリに設定することです。このようにして、アプリ全体を別の展開ディレクトリにコピーすることなく、アプリケーションを「展開」して展開します。クラスが WEB-INF/classes ディレクトリにコンパイルされるようにしてください。

もう 1 つの問題は、クラス ローダーです。JVM をデバッグ モードで実行すると、メソッド内で行われた一部のコード変更がクラス ローダーによって認識され、変更がすぐに表示されます。ただし、メソッド シグネチャや構造クラスの変更などの一部の変更は検出されないため、JVM の再起動が必要になります。基礎となるクラスファイルが変更されたときに何でもリロードできる自己醸造クラスローダーを提供できます。

于 2013-09-25T08:39:29.563 に答える
0

Tomcat コンテナは、起動時にメモリにロードされます。そして、Tomcat は webapps ディレクトリで利用可能なすべてのアプリケーションをロードします。後でアプリケーション クラスが必要になったときにロードされます。また、アプリケーションは必要に応じて他のリソースをロードする場合があります。

Windows でタスク マネージャーを開くか、他の OS で同様のものを開くと、Tomcat Java プロセスが開始されると常に実行されていることがわかります。また、現在のメモリ フットプリントを確認することもできます。そのため、オンデマンドでアンロードおよび再ロードされることはありません。

于 2013-09-25T08:35:44.143 に答える