Котяра 5.5:.банку не выпускать на волю.войны восстанавливать


Синопсис

Я пытаюсь экспортировать войну в мою папку webapps, но каждый раз, когда я обновляю войну, она удаляет все содержимое webapp минус/WEB-INF/lib / struts.jar

Информация о системе

  • Windows 2K3
  • Tomcat 5.5
  • JRE 1.6.23

Хорошо вот что происходит:

  1. экспортный проект as .WAR via Eclipse (Helios) to / webapps directory
  2. Томкэт видит перемены в войне и пытается перестроиться. webapp
  3. Tomcat удаляет содержимое папки webapp ( / webapps / public)
  4. (/веб-приложений/общественных/веб-инф/Либ/распорки.jar ) заблокирован, предотвращая его удаление.
  5. Tomcat отказывается от перестройки, оставляя меня ни с чем в папке, кроме распорок.баночка, вызывающая разрыв приложения.

Вопрос (ы)

  • есть ли способ, чтобы держать банку могут быть заблокированы?
  • (или) лучший процесс развертывания, который я должен использовать (и может подобрать быстро)?

Использование antiResourceLocking="true" и antiJARLocking="true" на элементе <Context> не решило проблему. Ценю любую помощь.

4 6

4 ответа:

Помогает ли добавление unloadDelay в контекст?

Который является:

Количество МС, которое контейнер будет дождитесь разгрузки сервлетов. Если нет указано, значение по умолчанию флаг-2000 МС.

Источник: http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

По-видимому, иногда веб-приложение находится в середине большого GC / загрузчик классов не был собран мусора и не может выпустить вовремя. Попробуй экспериментируйте с тайм-аутом, чтобы посмотреть, поможет ли это.

Есть также некоторые анекдотические свидетельства странной блокировки файлов на платформах Windows.

Кроме того, предполагая, что вы имеете в виду среду разработки (а не производства), посмотрите на один из моих вопросов, показывающий мой подход к Tomcat / Eclipse hot deploy environments:

Развертывание Tomcat и Eclipse Zero Turnaround


Обновить

Эта полезная тема появляется в Google на поиск этого же вопроса ссылается и ряд других:

Http://blog.exis.com/colin/?s=I+Поставить + A + Заклинание+На+Ты

Я думаю, что ваше требование заключается в быстром развертывании и перестроении, учитывая eclipse is ur IDE. Как вы уже поняли, экспорт файла war в папку webapps-не лучший вариант. Несколько других вариантов

A) использовать плагин sysdeo tomcat -- sysdeo развертывает папку проекта

B) обновить сценарий сборки для развертывания в разнесенном формате. -- развернуть папку \build как развернутое приложение

Первый вариант самый простой. Второй вариант чище.

[не по теме] подумайте о переходе на tomcat 7

Может ли эта нить иметь отношение к делу? Цитирует DTD в tiles-config.xml вызывает проблемы.

Это, вероятно, не оптимальное решение, но у меня уже были подобные проблемы с Tomcat 6 до сих пор. В то время я использовал Ant, поэтому я написал сценарий Ant, который будет развертываться в Tomcat локально, и в процессе он будет останавливать / запускать Tomcat, где это необходимо (Tomcat был развернут как служба, поэтому я мог использовать команды NET STOP / NET START). Это включало удаление старой развернутой папки войны.

Я думаю, что, вероятно, есть лучшие варианты, но это сработало для меня.