Я начинаю изучать 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 - запускается 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 немного обескураживает. Однако чаще всего не упоминается то, что вы можете получить идентичные или почти идентичные варианты использования с 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: Справочный слайд