Java EE
About
Java EE (Java Platform, Enterprise Edition) is a set of specifications and APIs that extend Java SE to provide a robust, scalable, and secure platform for developing large-scale, distributed, and multi-tier enterprise applications.
Originally developed by Sun Microsystems and later maintained by Oracle, Java EE was transferred to the Eclipse Foundation in 2017 and is now known as Jakarta EE (from version 9 onward).
Purpose: To simplify and standardize the development of enterprise-grade applications.
Includes: APIs for web services, messaging, persistence, transactions, security, and more.
Successor: Jakarta EE (same APIs but under the
jakarta.*
namespace from EE 9)Platform: Built on top of Java SE
Version Timeline
Java EE Version
Release Year
Key Features
J2EE 1.2
1999
EJB 1.1, Servlet 2.2, JSP 1.1
J2EE 1.3
2001
Connector Architecture, Enhanced EJB
J2EE 1.4
2003
Web Services, JAX-RPC
Java EE 5
2006
Annotations, JPA, EJB 3.0
Java EE 6
2009
CDI, Servlet 3.0, JAX-RS
Java EE 7
2013
WebSocket, JSON-P, Batch API
Java EE 8
2017
JSON-B, Security improvements, JAX-RS 2.1
Architecture
Presentation Tier: Servlets, JSP, JSF
Business Logic Tier: Enterprise JavaBeans (EJB), CDI
Persistence Tier: JPA (Java Persistence API)
Integration Tier: JMS (Java Message Service), JCA (Java Connector Architecture)
Web Services Tier: JAX-RS (REST), JAX-WS (SOAP)
Core APIs and Specifications
Web Layer
Servlet API: HTTP request/response handling
JavaServer Pages (JSP): Template-based HTML rendering
JavaServer Faces (JSF): Component-based UI framework
Expression Language (EL): Used in JSP/JSF to bind data
Business Logic
Enterprise JavaBeans (EJB): Declarative transactions, security, remote invocation
Context and Dependency Injection (CDI): Type-safe dependency injection
Persistence and Data Access
Java Persistence API (JPA): ORM-based database interaction
Java Transaction API (JTA): Transaction management
Messaging and Integration
Java Message Service (JMS): Asynchronous messaging (queues, topics)
JavaMail: Email handling
Java Connector Architecture (JCA): Connectors to enterprise information systems
Web Services
JAX-RS: RESTful web services
JAX-WS: SOAP web services
Other APIs
Bean Validation (JSR 303):
javax.validation
(integrates with JPA and CDI)Batch API (JSR 352): Large-scale batch jobs
Concurrency Utilities: Managed executors, context propagation
Security API (JASPIC, JAAS): Pluggable authentication mechanisms
JSON Processing (JSON-P) and JSON Binding (JSON-B)
Deployment Model
WAR (Web Archive): Contains web components (Servlets, JSP, JSF)
EAR (Enterprise Archive): Contains full enterprise apps (WAR + EJB JARs)
JAR (Java Archive): Used for reusable modules
Application Servers
Java EE applications are deployed on fully compliant Java EE Application Servers. Examples:
GlassFish (Reference Implementation)
WildFly / JBoss
WebLogic (Oracle)
WebSphere (IBM)
Payara (fork of GlassFish)
Apache TomEE
Development Tools and Ecosystem
IDEs: IntelliJ IDEA, Eclipse (with Enterprise plugins), NetBeans
Build Tools: Maven, Gradle, Ant
Testing:
Arquillian (integration testing)
JUnit/TestNG (unit testing)
Mockito/EasyMock (mocking frameworks)
Jakarta EE Transition
Reason: Oracle donated Java EE to Eclipse Foundation
Namespace Change: From
javax.*
tojakarta.*
Jakarta EE 9: Big-bang rename (only breaking change is package rename)
Jakarta EE 10+: Continued enhancements (modularization, native support, cloud focus)
Benefits
Standardization
Vendor neutrality
Simplified enterprise development
Built-in dependency injection, transactions, and messaging
Portable across compliant app servers
Real-World Usage
Banking and Financial Applications
Government and Public Sector
Telecom and E-commerce
Legacy enterprise apps still run on Java EE 7/8
Relationship to Other Editions
Java SE: Foundation platform; Java EE runs on top of it
Jakarta EE: New name and namespace since EE 9
MicroProfile: Cloud-native enhancements for Java EE (now merged into Jakarta ecosystem)
Last updated
Was this helpful?