Java Enterprise Edition (Java EE)

Java Enterprise Edition (Java EE), formerly known as J2EE and currently known as Jakarta EE (under the Eclipse Foundation), is a set of specifications and an extended Java platform used for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.

Java EE extends the Java Standard Edition (Java SE) with specifications for enterprise features such as distributed computing and web services.

Java EE provides a robust platform for enterprise-level services, including web services, component models, messaging services (JMS), and transaction management. It includes server-side technologies such as [[Java Servlets|servlets]], [[JavaServer Pages (JSP)]], and [[Enterprise JavaBeans (EJBs)]], which are essential for building enterprise applications.

Java EE supports the creation of [[SOAP]] and [[REST APIs|RESTful]] web services, enabling applications to interact over the web. Java EE follows a component-based architecture, allowing developers to build modular applications with reusable components.

It introduces the concept of "containers" which provide runtime support for Java EE components. Containers offer services like security, transaction management, and lifecycle management. Java EE includes the [[Java Persistence API (JPA)]] for database access, [[Object-Relational Mapping|object-relational mapping (ORM)]], and data persistence.

With [[Java Messaging Service (JMS)|Java Message Service (JMS)]] and [[Java Transaction API (JTA)]], Java EE supports reliable messaging and transaction management. Java EE applications are typically deployed on application servers, such as [[WildFly]] (formerly JBoss), [[IBM WebSphere]], [[Oracle WebLogic]], [[Payara]], and [[GlassFish]].

Contexts and Dependency Injection (CDI) in Java EE allows for loose coupling and easy integration of components. Java EE provides a robust security framework for authentication, authorization, and secure communication.