Встроенный vs Автономный сервер Tomcat (HTTP)

Я работаю над новым проектом, который будет веб-приложением с интерфейсом пользовательского интерфейса и веб-службой на задней панели. Я начал изучать, какие серверы использовать как Tomcat/Jetty, и так.. Я также заметил, что есть встроенная версия этих HTTP-серверов. Я не понимаю, когда использовать встроенную версию для автономной версии. Я попробовал поиск по Google, но не смог найти убедительного ответа. Так что, если кто-нибудь объяснит мне прецедент для встроенного сервера. Спасибо заранее.

Ответ 1

Встроенные серверы полезны, когда вы смотрите на свое приложение как на процесс ОС, и он будет запущен с чем-то вроде java -jar youapp.jar. Здесь настройка окна с данной версией сервера приложений, скажем, Tomcat, не требуется. Такие приложения могут запускаться конечным пользователем без какой-либо другой установки и настройки сервера приложений.

Такие приложения, как Jenkins, например, очень выигрывают от такой упаковки. Другим сценарием является развертывание на облачных сервисах, таких как Heroku. Вы завершаете сервер приложений в своем банке, чтобы избежать необходимости устанавливать сервер в таких облачных ящиках.

Здесь на данном встроенном сервере работает одно веб-приложение. Однако, если вы хотите установить два веб-приложения, скажем, два контекста ${root}/app1 ${root}/app2, тогда встроенный сервер приложений не подходит для вас.

Ответ 2

Я использовал embedded-jetty для веб-приложения. Причина, по которой я использовал, заключалась в том, что я не хотел настраивать отдельный веб-сервер только для одного приложения. Поэтому я создал простую java-программу с вложением в нее приставок и сконфигурировал все свойства сервера с помощью java-кода. Теперь я могу запустить эту программу на любом компьютере без установленного веб-сервера, и он будет действовать как веб-приложение, работающее на сервере. Я могу связать любой порт и отобразить в нем много-много контекст/сервлетов.