Enterprise Java를 살펴보기 시작했으며 다음에 나오는 책에서는 JBoss를 사용한다고 언급합니다. Netbeans는 Glassfish와 함께 제공됩니다. 나는 과거에 Tomcat을 사용했습니다.
이 세 프로그램의 차이점은 무엇입니까?
Enterprise Java를 살펴보기 시작했으며 다음에 나오는 책에서는 JBoss를 사용한다고 언급합니다. Netbeans는 Glassfish와 함께 제공됩니다. 나는 과거에 Tomcat을 사용했습니다.
이 세 프로그램의 차이점은 무엇입니까?
답변:
Tomcat은 서블릿 컨테이너 일뿐입니다. 즉 서블릿 및 JSP 사양 만 구현합니다. Glassfish와 JBoss는 완전한 Java EE 서버 (EJB, JMS 등 ... 포함)이며 Glassfish는 최신 Java EE 6 스택의 참조 구현이지만 2010 년 JBoss는 아직 완전히 지원하지 않았습니다.
Tomcat은 단순히 HTTP 서버 및 Java 서블릿 컨테이너입니다. JBoss 및 GlassFish는 EJB 컨테이너 및 해당 스택의 다른 모든 기능을 포함하여 완전한 Java EE 응용 프로그램 서버입니다. 반면 Tomcat은 메모리 공간이 적어 (~ 60-70MB) Java Java 서버는 수백 메가에 달합니다. Tomcat은 간단한 웹 애플리케이션 또는 전체 Java EE 서버가 필요하지 않은 Spring과 같은 프레임 워크를 사용하는 애플리케이션에 매우 인기가 있습니다. 움직이는 부품이 적기 때문에 Tomcat 서버 관리가 훨씬 쉽습니다.
그러나 완전한 Java EE 스택 (또는 Tomcat에 쉽게 연결할 수있는 최소한 하나 이상의 조각)이 필요한 애플리케이션의 경우 JBoss와 GlassFish는 가장 인기있는 오픈 소스 제품 중 하나입니다 (세 번째는 Apache Geronimo입니다) (무료 버전의 IBM WebSphere가 빌드되는 경우). JBoss는 더 크고 깊은 사용자 커뮤니티와보다 성숙한 코드베이스를 가지고 있습니다. 그러나 JBoss는 현재 Java EE 사양을 구현할 때 GlassFish보다 상당히 뒤떨어집니다. 또한 GUI 기반 관리 시스템을 선호하는 사람들에게는 GlassFish의 관리 콘솔이 매우 매끄럽지 만 JBoss의 대부분의 관리는 명령 줄 및 텍스트 편집기로 수행됩니다. GlassFish는 Sun / Oracle에서 바로 얻을 수있는 모든 이점을 제공합니다. JBoss는 Sun / Oracle의 통제하에 있지 않으며 모든 장점을 제공합니다.
Java EE 엔터프라이즈 응용 프로그램 에는 GlassFish를 사용해야 합니다 . 고려해야 할 사항 :
웹 서버 수단 : (일반적으로 브라우저에서) 처리 HTTP 요청.
서블릿 컨테이너 (예 : 톰캣 ) 수단 : 그것은 서블릿 및 JSP를 처리 할 수 있습니다.
응용 프로그램 서버 (예를 들어, 글래스 피쉬 ) 수단 : 그것은 자바 EE 애플리케이션 (일반적으로 서블릿 / JSP와 EJB를 모두)를 관리 할 수 있습니다 *.
Tomcat -Apache 커뮤니티가 운영합니다-오픈 소스이며 두 가지 특징이 있습니다.
상업적 지원이 없음 (커뮤니티 지원 만 해당)
JBoss -RedHat에서 실행 JavaEE에 대한 전체 스택 지원이며 인증 된 Java EE 컨테이너입니다. 내부적으로 웹 컨테이너로 Tomcat이 포함됩니다. 이것은 또한 두 가지 맛이 있습니다.
Glassfish -Oracle에 의해 실행 또한 전체 스택 인증 Java EE 컨테이너입니다. 여기에는 자체 웹 컨테이너가 있습니다 (Tomcat 아님). 이것은 Oracle 자체에서 제공되므로 모든 새로운 사양은 Glassfish로 먼저 테스트 및 구현됩니다. 따라서 항상 최신 사양을 지원합니다. 지원 모델을 알지 못합니다.
jboss와 glassfish는 톰캣과 같은 서블릿 컨테이너를 포함하지만 두 응용 프로그램 서버 (jboss와 glassfish)도 콩 컨테이너를 제공합니다 (그리고 상상할 수있는 몇 가지 다른 것들)
JBoss와 Glassfish는 기본적으로 완전한 Java EE Application Server 인 반면 Tomcat은 서블릿 컨테이너 일뿐입니다. JBoss, Glassfish뿐만 아니라 WebSphere, WebLogic 등 Tomcat과 Jetty의 주요 차이점은 전체 앱 서버가 제공하는 기능이었습니다. 풀 스택 Java EE 앱 서버를 보유한 경우 선택한 공급 업체의 모든 구현을 활용할 수 있으며 EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet을 활용할 수 있습니다. 등등. 반면 Tomcat을 사용하면 JSP / 서블릿 만 활용할 수 있습니다. 그러나 Spring 및 Guice와 같은 고급 프레임 워크를 사용하면 풀 스택 애플리케이션 서버를 사용하는 주요 이점 중 많은 부분을 완화 할 수 있으며이 프레임 워크 중 하나를 Spring Ecosystem을 사용하여 가정하면
이 답변을 읽을 때 Tomcat을 사용하는 것은 약간 실망스러운 것 같습니다. 그러나 가장 언급하지 않은 것은 tomcat과 동일하거나 거의 동일한 유스 케이스에 도달 할 수 있지만 Maven 또는 사용하는 시스템을 포함하여 필요한 라이브러리를 추가해야한다는 것입니다.
매우 작은 구성 노력으로 JPA, EJB로 Tomcat을 실행했습니다.
JBoss와 Tomcat은 모두 Java 서블릿 애플리케이션 서버이지만 JBoss는 훨씬 더 많습니다. 이 둘의 실질적인 차이점은 JBoss가 Enterprise JavaBeans 및 엔터프라이즈 Java 응용 프로그램을 개발하는 개발자에게 유용한 기타 기술을 포함하여 완전한 Java EE (Java Enterprise Edition) 스택을 제공한다는 것입니다.
Tomcat은 훨씬 더 제한적입니다. JBoss는 서블릿 컨테이너와 웹 서버를 포함하는 Java EE 스택이고, Tomcat은 대부분 서블릿 컨테이너와 웹 서버입니다.
Apache Tomcat은 Enterprise Java 응용 프로그램 (JEE)을 지원하지 않는 유일한 서버 릿 컨테이너입니다. JBoss와 Glassfish는 JEE 응용 프로그램을 지원하지만 JBOSS 서버보다 훨씬 무거운 Glassfish : Reference Slide