하지만 (...) 나는 효과적으로 자바 EE 애플리케이션 서버가없는 추가하면? 그리고 내 콩 EJB가 아닌가요? 아니면 다른 정의 특징이 있습니까?
아니요, Java EE 애플리케이션 서버가 없으므로 본격적인 Java EE 애플리케이션 서버는 Tomcat + Spring + 독립형 트랜잭션 관리자 이상입니다. JMS 공급자와 EJB 컨테이너를 추가하더라도 여전히 Java EE 서버는 없습니다. 모든 부품 간의 접착제는 중요한 IMO이며 Java EE 컨테이너의 부가가치의 일부입니다.
EJB의 경우 EJB 사양은 JPA보다 훨씬 뛰어나며 세션 빈 및 메시지 구동 Bean을 지정합니다. 실제로 JPA가 Java EE의 EJB 3.0 사양에 포함되어 있어도 JPA Entities를 EJB로 간주하지 않습니다 5 역사적인 이유로 - Java EE 6, JPA 2.0 및 EJB 3.1에서는 별다른 사양이 아닙니다. @Transactional
으로 주석 처리 된 Spring 빈은 Session Bean과 동일하지 않습니다. Java EE 컨테이너는 Session Beans로 더 많은 일을 할 수 있습니다 (아래 참조). 당신은 그들을 필요로하지 않을지도 모르지만 여전히, 그들은 엄격하게 동등하지 않습니다.
마지막으로, Java EE 컨테이너는 표준을 구현하고 Spring 컨테이너는 독점권을 갖지 않습니다.
Java EE 호환 응용 프로그램 서버가 일부 타사 하위 시스템과 함께 Tomcat에서 쉽게/쉽게 얻을 수 없다는 것을 어떻게 알 수 있습니까?
내가 말했듯이 "접착제"는 부가가치의 일부이며 전체의 견고성에 크게 기여한다고 생각합니다. 그런 다음, ewernli의 answer은 달성하기 어려운 것을 아주 잘 밑줄을 긋습니다.난 그냥 추가 할 것 :
- 클러스터링 및 페일 오버 (결함 허용을 달성하기 위해)
- 관리 시설
예, 좋은 자바 EE 서버가 꽤 깔끔한 일을 할 것입니다 (연결 풀의 클러스터링, JNDI 트리, JMS 대상, 멱등 원을 통한 자동 재 시도, 스마트 EJB 클라이언트, 트랜잭션 복구, 서비스 마이그레이션 등)을 향상시킵니다. "미션 크리티컬 (mission critical)"어플리케이션 - 대다수는 그렇지 않습니다 - 이것은 중요합니다. 그런 경우 Servlet API 위에있는 라이브러리는 IMO가 아닙니다.
참고로 Apache Tomcat은 전체 JavaEE 서버의 일부로 사용할 수 있습니다. 보다 구체적으로 JBoss 또는 Apache Geronimo. – Powerlord
가장 최근에는 Apache TomEE –