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