Я недавно переключил свое веб-приложение с работы через встроенный экземпляр Jetty на автономный экземпляр Tomcat. Все отображается соответствующим образом, и Tomcat начинает обслуживать контент.
Однако мое приложение отправляет около 20 запросов AJAX POST к серверу одновременно (для загрузки различных элементов страницы). Это хорошо работает на Jetty, однако Tomcat обслуживает первые несколько, а затем возвращает следующий ответ для следующих одного или двух:
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Fri, 09 Jul 2010 02:13:37 GMT
А затем продолжает обслуживать запросы, возвращая «пустые» ответы каждый 3-й или 4-й запрос. Я не думаю, что это проблема способа обработки запроса, так как а) он работает на Jetty и б) при обновлении страницы, некоторые запросы не были завершены до завершения, а некоторые - до завершения не завершены.
Мне интересно, если Tomcat недоволен тем, что его засыпают множеством запросов с одного и того же IP в одну и ту же секунду. Кто-нибудь знает как это исправить?
EDIT:
Я считаю, что проблема связана с потоками. Если я заставлю мои сервлеты реализовать SingleThreadModel, проблема исчезнет (конечно, это устарело и неоптимально, я попытаюсь выяснить, где настоящая проблема). Я считаю, что причина, по которой он работал в Jetty, заключалась в том, что я использовал встроенный экземпляр Jetty (в отличие от отдельного экземпляра Jetty), который должен был использовать только один поток внутри моего приложения.