это мой первый раз, когда я задаю вопрос здесь, я постараюсь сделать свой вопрос максимально ясным.
Я пытаюсь найти лучший процесс для разработки веб-приложений Java. После месяцев проб и ошибок моя среда веб-разработки состоит из следующих частей:
Framework: Apache Wicket 1.4.16
IDE: eclipse Galileo с подключаемым модулем m2eclipse
Инструменты сборки: Maven 2
Доступ к данным: EclipseLink 2.1.1 через JPA 2.0 (со StaticWeave)
СУРБД: MSSQL 2005 или выше с jTDS
DI: Google Guice 2.0
разработка веб-контейнера: сервер Jetty, встроенный в подключаемый модуль Maven Jetty.
Целевой веб-контейнер: Tomcat 6.x или выше
Я использую плагин maven Jetty для тестирования своих веб-приложений, включаю JPDA, в то время как требуется трассировка точности строки.
Всякий раз, когда в исходные коды вносятся изменения, мне приходится перезагружать приложение, чтобы оно вступило в силу. нажмите ENTER, чтобы перезагрузить, все в порядке, но после нескольких перезагрузок (около 3 ~ 5 зависит от моих настроек PermGen) выдается исключение OutOfMemoryException, после чего мне приходится выключать и снова запускать приложение. Я знаю, что автоматическая перезагрузка может быть достигнута с помощью конфигурации, но это приводит только к более быстрому OOME (из-за избыточных перезагрузок).
После поиска в Google я понимаю, что есть проблемы с утечкой памяти. Я пытался увеличить настройки MaxPermSize, но оперативная память на моей установке ограничена, и нецелесообразно устанавливать что-то действительно большое. Кстати, обнаружение утечек памяти введено в Tomcat 7, и я обнаружил, что большинство утечек памяти происходят из jTDS, Google Guice и самой Wicket, но я ничего не могу с этим поделать.
Есть ли что-нибудь, что я могу сделать, чтобы ускорить мой процесс разработки? Чтобы сократить время перезагрузки, я должен перейти на более продвинутый веб-контейнер, такой как Glassfish (извините, я не могу позволить себе WebLogic или WebSphere здесь) или что-то в этом роде.
Заранее спасибо, любые комментарии приветствуются!