ここに質問を投稿するのはこれが初めてです。質問をできるだけ明確にしようとします。
Java Web アプリケーションを開発するための最適なプロセスを見つけようとしています。何ヶ月にもわたる試行錯誤の後、私の Web 開発環境は次の部分で構成されています。
フレームワーク: Apache Wicket 1.4.16
IDE: m2eclipse プラグインを使用した eclipse Galileo
ビルド ツール: Maven 2
データ アクセス: JPA 2.0 経由の EclipseLink 2.1.1 (StaticWeave を使用)
RDBMS: jTDS を使用した MSSQL 2005 以降
DI: Google Guice 2.0
Web コンテナーの開発: Maven Jetty プラグインに組み込まれた Jetty サーバー。
対象の Web コンテナー: Tomcat 6.x 以降
Maven Jetty プラグインを使用して Web アプリケーションをテスト実行し、行精度のトレースが必要なときに JPDA を有効にします。
ソース コードに変更が加えられるたびに、アプリをリロードして有効にする必要があります。ENTER を押してリロードしても問題ありませんが、数回リロードした後 (PermGen の設定に応じて約 3 ~ 5 回)、OutOfMemoryException がスローされ、アプリをシャットダウンして再起動する必要があります。構成によって自動リロードを実現できることは知っていますが、(過剰なリロードによる) OOME の高速化につながるだけです。
グーグルで調べたところ、メモリリークの問題に関連していることがわかりました。MaxPermSize 設定を拡大しようとしましたが、リグの RAM は限られているため、非常に大きな値に設定するのは合理的ではありません。ところで、メモリ リーク検出は Tomcat 7 で導入されました。ほとんどのメモリ リークは jTDS、Google Guice、および Wicket 自体からのものであることがわかりましたが、それについては何もできません。
開発プロセスを加速するためにできることはありますか? リロード時間を短縮するには、Glassfish などのより高度な Web コンテナーに移行する必要があります (ここでは WebLogic や WebSphere を使用する余裕がありません)。
事前に感謝します。コメントは大歓迎です!