Каковы преимущества создания небольшого веб-приложения на Java для запуска в контейнере сервлетов (например, Tomcat) по сравнению с созданием автономного приложения на Java со встроенным веб-сервером и запуском его за обратным прокси-сервером?
Я играю с Java около года.Я заметил, что запуск Tomcat требует времени, и не всегда возможно выполнить горячее повторное развертывание из-за проблем с загрузчиком классов.Servlet API кажется мне несколько запутанным, особенно с точки зрения конфигурации и дизайна RESTful (который он не полностью поддерживает).
С другой стороны, я заметил, что моя IDE может компилироватьсяи запустить приложение с молниеносной скоростью.Конфигурирование Apache для обратного проксирования - это очень просто, и встроенная Jetty, кажется, справляется с чем угодно.Мне не нужны сервлеты, когда я могу использовать Restlet, Wicket и т. Д. Возможность лучше понять, как работает мое приложение (потому что оно не интегрировано с огромным сервером приложений), дает мне силы.Следы стека короче.Размер загружаемого файла меньше.Конфигурация конечного пользователя проще.Я предполагаю, что производительность, вероятно, будет лучше, потому что задействовано меньше программных слоев.
Однако мне напоминают о том, что звучит слишком хорошо, чтобы быть правдой.Поэтому мой вопрос: почему бы мне не захотеть сделать свои веб-приложения автономными?Что контейнер Servlet дает мне и / или моим конечным пользователям, что нам действительно нужно, но мы не знаем?