В моем проекте есть Java сервлет, расширяющий HttpServlet
. В ops этот сервлет правильно отвечает на AJAX вызовы на сервер, на котором выполняется Tomcat 6. URL-адреса вызовов имеют вид host:port/App/Servlet(query-string)
.
Я добавляю новый AJAX вызов к сервлету. Я копирую файл WAR сервлета в каталог Tomcat webapps
и переворачиваю сервис tomcat. Затем я запускаю свой проект (из сценария csh). Звонки сервлету теперь возвращают HTTP 404.
В файле журнала Catalina я ничего не вижу, указывающего, что сервлет даже запущен, но нет сообщений об ошибках, почему он не был найден. (Я подозреваю, что есть некоторые другие настройки журнала, которые мне нужно настроить, и какой-то другой файл журнала, который мне нужно просмотреть.)
Я перепроверил другой сервер разработки, на котором запущен оригинальный сервлет, и у него нет проблем.
Что не так с маршрутизацией к сервлету и как мне это исправить?
ETA1: сервлет имеет список вызовов: Call1
, Call2
, et c. Я добавил Call3
в список и использовал шаблон для Call1
столько, сколько смог найти. Теперь и Call1
, и Call3
возвращают 404 ошибки.
ETA2: я сбросил WAR-файл сервлета с другого сервера разработки - где существующие вызовы AJAX работают правильно - на этот сервер разработки. Звонки продолжали работать правильно. Хотя я заметил причуду, что система сборки работает с JDK 1.7.0_51, а приложение работает с JDK 1.7.0_71. Я также скопировал URL-адрес запроса AJAX и пошел прямо туда. С существующим сервлетом я получил AJAX ответ, который был в значительной степени правильным. С моей версией для разработчиков я получил пустую страницу.
ETA3: Я уточню свой сценарий, основываясь на отзывах из комментариев.
В моем проекте есть Java веб-приложение. Он работает правильно сам по себе.
Приложение отправляет AJAX вызовы сервлету Java. Этот сервлет работает правильно в операциях. Кроме того, при копировании версии выпуска на сервер разработки Tomcat 6 версия выпуска работает правильно.
Я добавил функцию в сервлет и развернул файл WAR на сервере разработки Tomcat. Теперь Tomcat жалуется, что не может найти сервлет (HTTP 404), даже для идентичных вызовов и неизмененных функций, которые раньше работали должным образом.
Поскольку версия выпуска корректно работает на веб-сервере разработки, я заключаю, что Tomcat Сам работает правильно. Я также заключаю, что нет проблем с URL или портом. Насколько я могу судить, Tomcat либо не может запустить сервлет, либо сервлет перестает работать до достижения своего конструктора. Я не нашел файл журнала или параметр ведения журнала, который бы показывал ошибку.