Любой способ работы с Eclipse WTP, который не означает повторное развертывание приложения _WHOLE_ при изменении страницы JSP - PullRequest
10 голосов
/ 12 марта 2010

Я перенес веб-приложение из MyEclipse в Eclipse WTP, и сейчас я нахожусь в процессе первого крупного обновления базы кода и веб-страниц после миграции, и, честно говоря, меня бесит, что сохранение страницы JSP вызывает повторное развертывание приложения WHOLE, так как это требует времени и того, что мое внутреннее соединение не выдерживает сериализацию-десериализацию объекта сеанса (что нетривиально исправить). В дополнение к этому JSP-редактор работает очень медленно, поэтому мне часто приходится делать паузу, чтобы редактор наверстывал упущенное, чтобы быть уверенным в том, куда идут мои изменения в небольшом JSP с использованием JavaServer Faces. Отключение проверки не помогло.

Eclipse Dynamic Web Project зависит от нескольких библиотечных проектов Eclipse, поэтому я не могу просто сказать, например, Не рекомендуется использовать папку WebRoot, поскольку в пути к классам отсутствуют некоторые зависимости.

Вопрос:

  • Есть ли способ работы - ЛЮБОЙ способ работы - с системой Eclipse WTP, который НЕ предполагает повторного развертывания всего при каждом сохранении любого файла?

Я могу использовать Tomcat 5.5 или Jetty 6 в качестве серверов.


РЕДАКТИРОВАТЬ: Иметь возможность поддерживать JSP-редактор тоже было бы неплохо ...


РЕДАКТИРОВАТЬ: JSP-страницы, о которых идет речь, содержат JSF-теги (myfaces 1.1.4, tomahawk 1.1.9), если это имеет значение?

Ответы [ 5 ]

6 голосов
/ 19 марта 2010

в настройках сервера Tomcat в eclipse вы должны включить опцию ' Обслуживать модули без публикации ' (как это сделать см. Ниже)

это решение, которое я использую, и оно позволяет мне просматривать изменения в JSP немедленно, без повторной публикации или чего-либо еще (в Tomcat 5.5 + обычный динамический веб-проект + JSP в каталоге WebContent), поэтому я не схожу с ума при разработке Java приложения:

как это сделать:

  • открыть представление сервера
  • дважды щелкните по вашему серверу, чтобы открыть настройки сервера
  • в разделе «Публикация» (вверху справа) выберите параметр «Никогда не публиковать автоматически» (как сказано в некоторых других ответах на ваш вопрос), чтобы избежать действия публикации при изменении чего-либо
  • это самое ВАЖНОЕ: в разделе «Параметры сервера» (внизу слева) выберите параметр «Обслуживать модули без публикации». теперь ваши изменения подобраны без повторного развертывания

ОБНОВЛЕНИЕ: вы также должны убедиться, что библиотеки, от которых вы зависите (те, что находятся на пути сборки), «копируются» в WEB-INF / lib при разработке в Eclipse (сделайте это, выбрав соответствующие JAR / проекты в Java Раздел Зависимости модуля EE в диалоге настроек вашего веб-проекта). со всеми этими настройками tomcat запустит веб-приложение из вашего проекта рабочей области с каталогом WebContent в качестве корня веб-приложения.

наслаждаться

3 голосов
/ 20 марта 2010

Я добавлю другое предложение, которое является скорее обходным путем.

Вы можете использовать плагин FileSync для синхронизации каталогов bin и webroot с вашим сервлет-контейнером. Вам придется использовать оригинальную установку, а не метаданные рабочей области. Затем, после запуска сервера в режиме отладки, все развертывается в горячем режиме.

Я успешно использовал этот подход с Glassfish 2.


Другое дело - проверить параметры конфигурации сервера в вашем проекте Servers (там должна быть папка). Может случиться так, что некоторые опции debug или hot-deploy отключены.


Что касается скорости редактора JSP - хорошо, отключение проверки - это первое, что вы сделали, и вы сделали это. Честно говоря, у моих страниц JSP (содержащих теги JSF и фактически использующих Facelets) нет никаких серьезных проблем со скоростью. Возможно использовать свежую установку?

2 голосов
/ 12 марта 2010

Вы можете отключить автоматическую публикацию в Eclipse, если вам нужно:

  1. Открыть представление серверов.
  2. Дважды щелкните по вашему серверу в Посмотреть. это поднимет сервер Страница конфигурации обзора.
  3. Найдите раздел "Публикация" на страница (правый верхний угол).
  4. Выберите «Никогда не публиковать» автоматически "опция.

Это позволит избежать проблемы «публиковать после каждого сохранения». Однако, если это отключено, вам придется вручную развертывать каждый раз, когда вы хотите, чтобы ваши изменения отображались на вашем сервере.

1 голос
/ 19 марта 2010

Это странно, это не то, что я испытываю. Я перепроверил это в Eclipse IDE для разработчиков Java EE (Build id: 20090920-1017) и Tomcat 5.5.28 (а также Tomcat 6.0.28) и не могу воспроизвести проблему:

  • изменение файла Java DOES перезагрузка контекста ~ но ~
  • изменение JSP НЕ перезагрузка контекста

(и это без изменения каких-либо конкретных настроек моего сервера Tomcat под Eclipse).

Проблема выглядит как-то связанной с вашим проектом или вашей машиной. Это происходит с любым проектом на вашей машине? Можете ли вы воспроизвести его на другом компьютере?

1 голос
/ 18 марта 2010

Мой совет:

Убедитесь, что вы используете последнюю выпущенную версию Eclipse / WTP и Tomcat. Вы можете загрузить новые биты в отдельном месте и рабочей области. Не переходите к последнему и самому важному этапу / релизу кандидата ... Я говорю о битах, которые вы можете получить от http://eclipse.org/downloads/...

Посмотрите, можете ли вы воспроизвести проблему с помощью простейшего динамического веб-проекта. Если вы можете, сообщите об ошибке на Eclipse.org. Если вы не можете воспроизвести проблему с помощью самого простого приложения, загрузите свое приложение в эту новую среду разработки и посмотрите, решит ли это проблему. Если это не так, то проблема, скорее всего, связана с вашим проектом.

...