я впервые задаю вопрос здесь, я постараюсь сделать мой вопрос максимально понятным.
Я пытаюсь найти лучший процесс для разработки веб-приложений на Java. После нескольких месяцев проб и ошибок моя среда веб-разработки состоит из следующих частей:
фреймворк: Apache Wicket 1.4.16
IDE: затмение 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 здесь.) Или что-то еще.
Заранее спасибо, любые комментарии приветствуются!