Я начинаю изучать Enterprise Java, и в книге, в которой я следую, упоминается, что она будет использовать JBoss. Netbeans поставляется с Glassfish. Я использовал Tomcat в прошлом.
Каковы различия между этими тремя программами?
Я начинаю изучать Enterprise Java, и в книге, в которой я следую, упоминается, что она будет использовать JBoss. Netbeans поставляется с Glassfish. Я использовал Tomcat в прошлом.
Каковы различия между этими тремя программами?
Ответы:
Tomcat - это просто контейнер сервлетов, т.е. он реализует только сервлеты и спецификацию JSP. Glassfish и JBoss являются полными серверами Java EE (включая такие, как EJB, JMS, ...), причем Glassfish является эталонной реализацией последнего стека Java EE 6, но JBoss в 2010 году еще не полностью его поддерживал.
Tomcat - это просто сервер HTTP и контейнер сервлетов Java. JBoss и GlassFish являются полнофункциональными серверами приложений Java EE, включая контейнер EJB и все другие функции этого стека. С другой стороны, Tomcat имеет меньший объем памяти (~ 60-70 МБ), тогда как эти серверы Java EE весят сотни мегабайт. Tomcat очень популярен для простых веб-приложений или приложений, использующих такие среды, как Spring, для которых не требуется полноценный сервер Java EE. Администрирование сервера Tomcat, возможно, проще, поскольку в нем меньше движущихся частей.
Однако для приложений, которым требуется полный стек Java EE (или, по крайней мере, больше компонентов, которые можно легко прикрепить к Tomcat) ... JBoss и GlassFish - два наиболее популярных предложения с открытым исходным кодом (третье - Apache Geronimo , на которой построена бесплатная версия IBM WebSphere). JBoss имеет более обширное и глубокое сообщество пользователей и более зрелую базу кода. Тем не менее, JBoss значительно отстает от GlassFish в реализации текущих спецификаций Java EE. Кроме того, для тех, кто предпочитает систему администрирования на основе графического интерфейса ... Консоль администратора GlassFish чрезвычайно удобна, в то время как большая часть администрирования в JBoss выполняется с помощью командной строки и текстового редактора. GlassFish поставляется непосредственно от Sun / Oracle, со всеми преимуществами, которые могут предложить. JBoss НЕ находится под контролем Sun / Oracle, со всеми преимуществами, которые может предложить.
Вы должны использовать GlassFish для корпоративных приложений Java EE . Некоторые вещи для рассмотрения:
А веб - сервер означает: Обработка HTTP - запросы (обычно от браузеров).
Контейнер сервлетов (например , Tomcat ) означает: Он может обрабатывать сервлеты & JSP.
Сервер приложений (например, GlassFish ) означает: * Он может управлять приложениями Java EE (обычно сервлетами / JSP и EJB).
Tomcat - управляется сообществом Apache - открытым исходным кодом и имеет два вида:
Коммерческая поддержка недоступна (только поддержка сообщества)
JBoss - Run by RedHat Это полная поддержка стека для JavaEE и это сертифицированный контейнер Java EE. Это включает в себя Tomcat в качестве веб-контейнера внутри. Это также имеет два вкуса:
Glassfish - под управлением Oracle Это также сертифицированный Java EE-контейнер с полным стеком. Это имеет свой собственный веб-контейнер (не Tomcat). Это происходит от самого Oracle, поэтому все новые спецификации будут сначала протестированы и реализованы с помощью Glassfish. Таким образом, всегда будет поддерживать последние спецификации. Я не в курсе его моделей поддержки.
В состав jboss и glassfish входит контейнер сервлетов (например, tomcat), однако два сервера приложений (jboss и glassfish) также предоставляют контейнер bean-компонентов (и некоторые другие вещи, как я себе представляю)
JBoss и Glassfish в основном являются полноценным сервером приложений Java EE, тогда как Tomcat - это всего лишь контейнер сервлетов. Основное различие между JBoss, Glassfish, а также WebSphere, WebLogic и т. Д. В отношении Tomcat, а также Jetty, заключалось в функциональности, которую предлагает полный сервер приложений. Когда у вас был сервер приложений Java EE с полным стеком, вы можете воспользоваться всеми преимуществами реализации поставщика по вашему выбору, а также EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet и, конечно же, и так далее. С Tomcat, с другой стороны, вы можете воспользоваться только JSP / Servlet. Однако на сегодняшний день с такими продвинутыми платформами, как Spring и Guice, многие из основных преимуществ использования сервера приложений с полным стеком могут быть смягчены, и при условии, что один из этих фреймворков будет реализован исключительно в среде Spring Ecosystem,
Кажется, немного разочаровывает использование Tomcat, когда вы читаете эти ответы. Однако больше всего не упоминается то, что вы можете использовать идентичные или почти идентичные варианты использования с tomcat, но для этого необходимо добавить необходимые библиотеки (через Maven или любую другую систему, которую вы используете).
Я работал с Tomcat с JPA, EJB с очень небольшими усилиями по настройке.
И JBoss, и Tomcat являются серверами приложений Java-сервлетов, но JBoss - намного больше. Существенная разница между ними заключается в том, что JBoss предоставляет полный стек Java Enterprise Edition (Java EE), включая Enterprise JavaBeans и многие другие технологии, которые полезны для разработчиков, работающих над корпоративными приложениями Java.
Tomcat гораздо более ограничен. Можно подумать, что JBoss - это стек Java EE, который включает в себя контейнер сервлетов и веб-сервер, тогда как Tomcat, по большей части, является контейнером сервлетов и веб-сервером.
Apache tomcat - это единственный серверный контейнер, который он не поддерживает для приложения Enterprise Java (JEE). JBoss и Glassfish поддерживают приложение JEE, но Glassfish намного тяжелее сервера JBOSS: Reference Slide