Последние изменения не отражены в сервлете (tomcat) - PullRequest
4 голосов
/ 24 января 2012

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

Я развернул войну 22-1-2012 (с некоторыми печатными сообщениями), она работала правильно, затем на следующий день я внес некоторые изменения, удалил некоторые сообщения и заново развернул файл ... В папке моих веб-приложений он показывает последнее время за «последнее изменение» моего военного файла ... что я делаю не так, скажи мне ...

P.S любые изменения страниц JSP того же проекта отражаются, но класс сервлета не изменяется

Это то, что показывает файл журнала _SEVERE: Похоже, что веб-приложение запустило TimerThread с именем [Таймер отмены операторов MySQL] через API java.util.Timer, но не смогло его остановить. Чтобы предотвратить утечку памяти, таймер (и, следовательно, связанный с ним поток) был принудительно отменен. _

Ну, это краткое изложение моей проблемы, я надеюсь, что теперь я могу объяснить вам проблему я снова выполнил следующие шаги
1. Удалил мой каталог веб-приложений из веб-приложений
2. Попытка доступа к сервлету (на ней отображается «Ресурс недоступен»).
3. Внесите некоторые изменения в оператор печати для отладки.
4. Повторно разверните WAR из eclipse
5. Снова получите доступ к сервлету это не последняя версия, она показывает те же старые сообщения.

Теперь скажите мне, если есть решение .... Заранее спасибо


После стольких попыток, которые я только что заметил, когда я развертывал файл WAR, файлы классов не сервлетов JSP не были включены в WAR, когда я вручную добавлял эти файлы классов в WAR, все изменения были обновлены ... Так что теперь вы можете сказать мне как автоматически развернуть их в WAR .. в чем проблема?

Ответы [ 10 ]

6 голосов
/ 14 сентября 2012

Файлы JSP не обновляются, поскольку они были предварительно скомпилированы, и, хотя они могут извлекать информацию из файлов, которые были изменены, для каждого файла JSP, на который может быть оказано влияние, необходимо внести в него небольшие изменения, например добавить пробел, а затем удалите пробел и сохраните его.

Затем создайте свою WAR, и тогда должны появиться обновления. Сегодня вечером я прошел через ту же проблему, и ни один из других ответов не помог. Ключ, чтобы проверить даты файла в каталоге Tomcat, где вы развернули WAR. Я заметил, что, хотя я развертывал совершенно новый очищенный WAR-файл и удалял все папки, там были все еще старые кэшированные файлы, возможно потому, что Eclipse сохраняет их для экономии времени компиляции, думая, что у них нет никаких изменений.

Надеюсь, это поможет

5 голосов
/ 03 сентября 2016

Перейти к просмотру серверов в Eclipse:

Двойной клик на вашем сервере. В моем случае это Tomcat.

Должен появиться веб-модуль Tomcat. Нажмите на вкладку Модули в самом низу (см. Рис. 1)

Выберите ваш проект. Нажмите кнопку «Удалить».

Рис 1: enter image description here

Теперь вы должны увидеть звезду рядом с вкладкой Tomcat. Это означает, что вам нужно сохранить ваши изменения. Так делают Control + S.

Рис 2: enter image description here

Щелкните правой кнопкой мыши свой проект в Project Explorer. Перейдите в Maven -> Обновить проект…

Рис. 3: enter image description here

Теперь это важная часть, убедитесь, что у вас установлен флажок «Принудительное обновление снимков / выпусков». Проверка этой части имеет решающее значение. Затем нажмите Ok.

Рис. 4: enter image description here

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

Рис 5: enter image description here

Щелкните правой кнопкой мыши по нему и выберите Restart

Рис 6:

enter image description here

Пусть сервер перезагрузится. Теперь, если вы вернетесь к представлению сервера, вы должны увидеть, что оно синхронизировано. Это то, что ты хочешь. Как это:

Рис 7: enter image description here

Теперь вы должны иметь возможность щелкнуть правой кнопкой мыши по своему проекту и выбрать «Запуск от имени» -> «Запускать на сервере», и вы увидите ваши изменения.

Рис. 8: enter image description here

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

0 голосов
/ 30 июля 2018

В файле web.xml добавьте одну букву в конце и удалите ее, а затем нажмите Enter, чтобы сохранить файл. После этого запустите программу и она будет работать с обновленными данными.

0 голосов
/ 29 марта 2015

для каждого файла войны, tomcat создает аналогичную именованную папку. Удалите папку, попробуйте заново развернуть войну, надеюсь, это отразится.

0 голосов
/ 31 июля 2014

Зайдите в настройки браузера и очистите кеш.

0 голосов
/ 17 октября 2013

ваш tomcat server.xml указывает на правильное рабочее пространство?чтобы убедиться, что вы идете в установленный каталог tomcat - найдите файл server.xml в папке confi

0 голосов
/ 04 апреля 2013

перейти к каталине home \ conf \ context.xml

изменить "на" " Убедитесь, что вы перезапустите Tomcat. Boom. Возможно, вам все равно придется нажимать F5 или Ctrl + F5 два или три раза.

0 голосов
/ 24 января 2012

Реальность такова, что Tomcat не может запускать код, копию которого у него нет.Особенно если вы перезапустили его.Похоже, что существует отдельная «копия» вашего веб-приложения, которое фактически используется.Либо сделано непреднамеренно вами (эй, давайте посмотрим правде в глаза, мы все сделали это), либо сделано Tomcat в месте, о котором вы не знали.

Выберите уникальный файл, который существует в вашем веб-приложении.Может быть, имя значка или имя файла конфигурации.Поиск по всему жесткому диску, чтобы найти разорванные копии файла WAR.Это поможет найти его во временном каталоге или рабочей папке.Обязательно очистите их.

Кроме того, убедитесь, что вы используете Tomcat, который, как вы думаете, у вас есть.Большинство разработчиков с несколькими установками Tomcat также допустили ошибку при развертывании в другом месте.Посмотрите на список процессов, чтобы увидеть аргументы, переданные JVM во время запуска.Обязательно проверьте переменную среды для таких вещей, как CATALINA_HOME.

РЕДАКТИРОВАТЬ: Ваше обновление страниц JSP изменяется, но классы не заставляют меня думать, что у вас есть несколько файлов JAR в пути к классам, в которых есть один и тот же файл в нем(одна старая версия загружается первой) ИЛИ вы изменили имя класса в базе кода, но не обновили ссылки на него.

0 голосов
/ 24 января 2012

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

0 голосов
/ 24 января 2012

отражаются любые изменения на страницах JSP того же проекта, но класс сервлета не изменяется

Непонятно, что вы говорите.

  • Если вы говорите, что обновленные JSP находятся в расширенном каталоге webapp, но сгенерированные / скомпилированные классы JSP не изменились (в рабочем каталоге), попробуйте удалить классы из рабочего каталога.Вам также может потребоваться перезапустить веб-контейнер.

  • Если вы говорите, что классы не сервлетов JSP были обновлены (в веб-приложении), но вы их не запускаете, попробуйтеперезапуск веб-контейнера.

  • Если вы говорите, что классы не-JSP-сервлетов не были обновлены в каталоге webapp, значит, что-то пошло не так в развертывании webapp.Завершите работу веб-контейнера, удалите каталог веб-приложения (и, если нужно, скомпилированные JSP) и перезапустите веб-приложение.


После того, как я попробовал так много всего,Я развернул файл WAR. Файлы классов, не являющихся сервлетом JSP, не были включены в WAR, когда я вручную добавляю эти файлы классов в WAR, все изменения обновляются. Итак, теперь вы можете сказать мне, как автоматически развертывать их в WAR ... в чем проблема??

Таким образом, проблема не связана с развертыванием.Проблема в том, что вы изначально не строите файл WAR.

Я не могу помочь с этим, потому что я не использую Eclipse для создания моих файлов WAR.(Я использую Maven, чтобы процесс сборки был скриптовым и воспроизводимым ... и не зависел от того, чтобы я каждый раз нажимал правильные кнопки в правильном порядке.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...