완전한 애플리케이션 서버 (예 : Weblogic, JBoss 등)와 서블릿 컨테이너 (Tomcat, Jetty 등)의 차이점을 이해하려고합니다.
그것들은 어떻게 다르며 언제 사용합니까?
감사,
완전한 애플리케이션 서버 (예 : Weblogic, JBoss 등)와 서블릿 컨테이너 (Tomcat, Jetty 등)의 차이점을 이해하려고합니다.
그것들은 어떻게 다르며 언제 사용합니까?
감사,
답변:
서블릿 컨테이너는 서블릿 API (JSP, JSTL 포함) 만 지원합니다.
애플리케이션 서버는 전체 JavaEE (EJB, JMS, CDI, JTA, 서블릿 API (JSP, JSTL 포함) 등)를 지원합니다.
서블릿 컨테이너에서 대부분의 JavaEE 기술을 실행할 수 있지만 특정 기술의 독립 실행 형 구현을 설치해야합니다.
대체로 서블릿 컨테이너는 J2EE 서블릿 사양의 구현으로 다소 제한됩니다. 또한 추가 도구를 제공하는 것이 아니라 런타임 환경에 중점을 둡니다.
대조적으로, 완전한 애플리케이션 서버는 전체 J2EE 스택을 구현합니다. 또한 모든 엔터프라이즈 도구 및 통합 가능성이 함께 제공됩니다. 응용 프로그램 서버에는 일반적으로 고급 관리 인터페이스가 있으며 주로 고급 시스템 개발에 사용되는 클러스터링 및 기타 기능을 지원합니다.
초보자에게는 학습 곡선이 훨씬 덜 가파르 기 때문에 간단한 서블릿 컨테이너를 사용하는 것이 좋습니다.
편집하다
@Apache Fan : 기존 시스템 및 향후 계획과 같은 상황의 특성에 따라 다릅니다. 여기에는 일반적인 순서도 접근 방식이 적용되지 않는다고 생각합니다.
플랫폼 선택은 일반적으로 고려중인 시스템에 대한 직접적인 지식과 특정 요구 사항을 비교하여 수행됩니다.
그러나 질문은 평가 기준이 무엇인지에 대한 단서를 제공하지 않습니다. 오픈 소스 여야합니까? 24 시간 공급 업체 지원이 필요합니까? 시스템을 어떤 종류의 엔터프라이즈 환경과 통합해야합니까? 라이센스 비용이 문제입니까? 필수 기술이나 도구가 있습니까? 기타.
위의 내용을 모르면 어둠 속에서 촬영하는 것과 같습니다.
기본적으로 Java EE 컨텍스트 의 애플리케이션 서버 는 서버 에 설치되고 하나의 Java EE 사양 (예 : Java EE 7)을 구현하는 소프트웨어입니다. 이는 그러한 소프트웨어 (애플리케이션 서버)가 Java EE 애플리케이션을 실행할 수 있어야 함을 의미합니다.
Java EE는 소위 컨테이너 라고하는 4 개의 도메인을 정의합니다 .
두 개의 컨테이너는 애플리케이션 서버 (EJB 및 웹 컨테이너)의 일부이고 나머지 두 개는 클라이언트 컴퓨터의 일부입니다.
JBoss와 Weblogic은 애플리케이션 서버이고 Tomcat과 Jetty는 웹 컨테이너입니다. 이것이 JBoss와 Weblogic이 웹 컨테이너보다 더 많은 기술을 다룰 수있는 이유입니다. Application Server는 EJB를 관리 할 수 있습니다.
서블릿 컨테이너는 더 제한적이기 때문에 자격을 갖춘 Tomcat 및 Jetty에 적합한 표현식이 아닙니다 . Tomcat은 서블릿뿐만 아니라 JSP 및 JSF도 실행할 수 있습니다.
afaik, websphere 및 jboss는 EJB와 같은 서블릿을 넘어서 실행할 수있는 완벽하게 호환되는 j2ee-server 인 반면 Tomcat은 서블릿 컨테이너 일 뿐이며 EJB를 실행할 수 없습니다.