Котяра 5.5:.банку не выпускать на волю.войны восстанавливать
Синопсис
Я пытаюсь экспортировать войну в мою папку webapps, но каждый раз, когда я обновляю войну, она удаляет все содержимое webapp минус/WEB-INF/lib / struts.jar
Информация о системе
- Windows 2K3
- Tomcat 5.5
- JRE 1.6.23
Хорошо вот что происходит:
- экспортный проект as .WAR via Eclipse (Helios) to / webapps directory Томкэт видит перемены в войне и пытается перестроиться. webapp
- Tomcat удаляет содержимое папки webapp ( / webapps / public)
- (/веб-приложений/общественных/веб-инф/Либ/распорки.jar ) заблокирован, предотвращая его удаление.
- Tomcat отказывается от перестройки, оставляя меня ни с чем в папке, кроме распорок.баночка, вызывающая разрыв приложения.
Вопрос (ы)
- есть ли способ, чтобы держать банку могут быть заблокированы?
- (или) лучший процесс развертывания, который я должен использовать (и может подобрать быстро)?
Использование antiResourceLocking="true"
и antiJARLocking="true"
на элементе <Context>
не решило проблему. Ценю любую помощь.
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). Это включало удаление старой развернутой папки войны.
Я думаю, что, вероятно, есть лучшие варианты, но это сработало для меня.