Разница между сервером приложений и контейнером сервлетов?
Я пытаюсь понять разницу между полноценным сервером приложений (например, Weblogic, JBoss и т. д.) и контейнер сервлета (Tomcat, Jetty etc.).
чем они отличаются и когда их использовать?
спасибо,
5 ответов
сервлет-контейнер поддерживает только API сервлета (включая JSP, JSTL).
сервер приложений поддерживает весь JavaEE-EJB, JMS, CDI, JTA, API сервлета (включая JSP, JSTL) и т. д.
можно запустить большинство технологий JavaEE на сервлет-контейнере, но вы должны установить автономную реализацию конкретной технологии.
вообще говоря, контейнер сервлета ограничивает себя более или менее реализацией спецификации сервлета J2EE. Кроме того, основное внимание уделяется среде выполнения, а не предоставлению дополнительных инструментов.
напротив, полноценный сервер приложений реализует весь стек J2EE; плюс он поставляется со всеми инструментами enterprisey и возможностями интеграции. Сервер приложений обычно имеет расширенные интерфейсы администрирования, поддерживает кластеризацию и другие характеристики используемые главным образом в лидирующем развитии систем.
для новичка, вероятно, лучше остаться с простым контейнером сервлетов, так как кривая обучения там намного менее крутая.
редактировать
@Apache Fan: это зависит от особенностей вашей ситуации, таких как существующие системы и будущие планы, среди прочего. Я не думаю, что здесь применим общий подход блок-схемы.
выбор платформы обычно делается путем взвешивания конкретных требований с учетом знаний из первых рук рассматриваемых систем.
однако вопрос не дает никаких подсказок относительно того, каковы критерии оценки. Должен ли он быть открытым исходным кодом? Необходима ли круглосуточная поддержка поставщиков? С какой корпоративной средой должна интегрироваться система? Являются ли лицензионные сборы проблемой? Любые обязательные технологии или инструменты? Так далее.
Не зная выше, это в значительной степени стрельба в темный.
в основном сервер приложений в контексте Java EE-это программное обеспечение, установленное на сервере и реализующее одну спецификацию Java EE (например, Java EE 7). Это означает, что такое программное обеспечение (сервер приложений)должно иметь возможность запускать приложение Java EE.
Java EE определяет 4 домена, так называемые тара:
- контейнер апплета,
- контейнер клиента приложения,
- веб-контейнер и
- контейнер EJB.
два контейнера являются частью сервера приложений (EJB и веб-контейнер) и два других являются частью клиентского компьютера.
JBoss и Weblogic-это серверы приложений, Tomcat и Jetty-это веб-контейнер. Вот почему JBoss и Weblogic могут иметь дело с большим количеством технологий, чем веб-контейнер. Сервер приложений может управлять EJB.
контейнер сервлета не подходит выражение квалифицированный Tomcat и причал, потому что он более ограничительный. Tomcat также может выполнять JSP и JSF, а не только сервлеты.
afaik, websphere и jboss полностью совместимы с J2EE-сервером, который может работать за пределами сервлетов, таких как EJB, тогда как Tomcat-это просто контейнер сервлетов, и вы не можете запускать EJBs на нем.
в терминах непрофессионала : веб-сервер-это: обработка HTTP-запросов (обычно из браузеров).
контейнер сервлета (например, Tomcat) означает: Он может обрабатывать сервлеты и JSP.
сервер приложений (например, GlassFish) означает: *Он может управлять приложениями Java EE (обычно как servlet/JSP, так и EJBs).
для новичка, вероятно, лучше остаться с простым контейнером сервлетов.