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.* to jakarta.*

  • 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?