Java EE Technology Stack
In this article, we will examine the components of Java EE technology stack and historically look at the new comer components and version changes in the components along with the Java EE versions. I will use this article as the umbrella for Java EE stack and update for every new features added to Java EE.
- business logic (projects to EJB)
- contents or presentations (projects to Servlet, JSP, JSF)
are developed as software components and then run in a managed execution environment named containers.
In terms of Java EE, there are two types of containers;
Samples for the provided services by containers:
About Java Enterprise Edition
Under the container architecture named Java Enterprise Edition;- business logic (projects to EJB)
- contents or presentations (projects to Servlet, JSP, JSF)
are developed as software components and then run in a managed execution environment named containers.
In terms of Java EE, there are two types of containers;
- Web container
- In web container, the components are generated in the form of Servlet, JSP and JSF, called web components.
- Tomcat is a Java EE web container in which web components can be executed.
- Application container
- In the application container, the components are generated in the form of EJBs.
- Weblogic, Websphere, Tom EE are some of JEE compliant application servers.
What containers do ?
Containers provide essential services to components and execute the life cycle of components.Samples for the provided services by containers:
- Security
- Transaction management
- Life cycle management
- Request dispatching
Below is the diagram for the web and ejb containers and the services provided for each in Java EE 5:
Java EE 6 Technology Stack
The umbrella specification for Java EE 6 is JSR 316
Java EE 6 API
|
Version
|
Spec
|
Web Container
|
EJB Container
|
Servlet
|
JSR 315
|
✔
|
X
|
|
Java Server Faces
|
JSR 314
|
✔
|
X
|
|
EJB (Enterprise
Java Beans)
|
JSR 318
|
X
|
✔
|
|
EJB Lite
|
JSR 318
|
✔
|
X
|
|
Interceptors
|
JSR 318
|
✔
|
✔
|
|
Managed Beans
|
|
✔
|
✔
|
|
Common
Annotations
|
JSR 250
|
✔
|
✔
|
|
Dependency Injection for Java
|
JSR 330
|
✔
|
✔
|
|
CDI (Contexts and
Dependency Injection)
|
JSR 299
|
✔
|
✔
|
|
Bean Validation
|
JSR 303
|
✔
|
✔
|
|
EL
|
JSR 245
|
✔
|
X
|
|
JavaMail
|
JSR 919
|
✔
|
✔
|
|
JSP
|
JSR 245
|
✔
|
X
|
|
Connectors
|
JSR 322
|
✔
|
✔
|
|
JPA (Java Persistence)
|
JSR 317
|
✔
|
✔
|
|
JTA (Java Transaction API)
|
JSR 907
|
X
|
✔
|
|
JMS (Java Message Service API)
|
JSR 914
|
✔
|
✔
|
|
Management
|
JSR 77
|
✔
|
✔
|
|
JMX
|
JSR 255
|
✔
|
✔
|
|
WS
Metadata
|
|
✔
|
|
|
Web
Services
|
JSR 109
|
✔
|
✔
|
|
JACC (Java Authorization
Contract for Containers)
|
JSR 115
|
✔
|
✔
|
|
JASPIC (Java
Authentication Service Provider Interface)
|
|
✔
|
✔
|
|
JAX-RS (Java API for
RESTful Web Services)
|
JSR 311
|
✔
|
✔
|
|
JAX-WS (Java API for XML-Based
Web Services)
|
JSR 224
|
✔
|
✔
|
|
JAX-RPC (Java API for XML-Based
RPC)
|
JSR 101
|
✔
|
✔
|
|
JAXR (Java API for XML
Registries)
|
JSR 93
|
X
|
✔
|
Java EE 7 Technology Stack
The umbrella specification for Java EE 7 is JSR 342
Java EE 7 API
|
Version
|
Spec
|
Web Container
|
EJB Container
|
Servlet
|
JSR 340
|
✔
|
X
|
|
Java Server Faces
|
JSR 344
|
✔
|
X
|
|
EJB (Enterprise
Java Beans)
|
JSR 345
|
X
|
✔
|
|
EJB Lite
|
JSR 345
|
✔
|
X
|
|
Concurrency Utilities
|
JSR 236
|
✔
|
✔
|
|
Batch Applications for the
Java Platform
|
|
✔
|
✔
|
|
Interceptors
|
JSR 318
|
✔
|
✔
|
|
Managed
Beans
|
JSR 342
|
✔
|
✔
|
|
Common
Annotations
|
JSR 250
|
✔
|
✔
|
|
Dependency
Injection for Java
|
JSR 330
|
✔
|
✔
|
|
CDI (Contexts and Dependency
Injection)
|
JSR 346
|
✔
|
✔
|
|
Bean
Validation
|
JSR 349
|
✔
|
✔
|
|
EL
|
JSR 341
|
✔
|
X
|
|
JSTL
|
JSR 52
|
✔
|
X
|
|
JavaMail
|
JSR 919
|
✔
|
✔
|
|
JSP
|
JSR 245
|
✔
|
X
|
|
Connectors
|
JSR 322
|
✔
|
✔
|
|
JPA (Java Persistence)
|
JSR 338
|
✔
|
✔
|
|
JTA (Java Transaction API)
|
JSR 907
|
X
|
✔
|
|
JMS (Java Message Service API)
|
JSR 343
|
✔
|
✔
|
|
Management
|
JSR 77
|
✔
|
✔
|
|
JMX
|
JSR 003
|
✔
|
✔
|
|
WS
Metadata
|
|
✔
|
|
|
Web
Services
|
JSR 109
|
✔
|
✔
|
|
JACC (Java Authorization
Contract for Containers)
|
JSR 115
|
✔
|
✔
|
|
JASPIC (Java Authentication
Service Provider Interface)
|
JSR 196
|
✔
|
✔
|
|
JAX-RS (Java API for RESTful
Web Services)
|
JSR 339
|
✔
|
✔
|
|
JAX-WS (Java API for XML-Based
Web Services)
|
JSR 224
|
✔
|
✔
|
|
JAX-RPC (Java API for XML-Based
RPC)
|
JSR 101
|
✔
|
✔
|
|
JAXR (Java API for XML
Registries)
|
JSR 93
|
X
|
✔
|
|
JSON-P (Java API for
JSON Processing)
|
|
✔
|
✔
|
|
WebSocket
|
JSR 356
|
✔
|
X
|
Java EE 8 Technology Stack
The umbrella specification for Java EE 8 is JSR 366
Java EE 8 API
|
Version
|
Spec
|
Web Container
|
EJB Container
|
Servlet
|
JSR 369
|
✔
|
X
|
|
JSF (Java Server
Faces)
|
JSR 372
|
✔
|
X
|
|
EJB
|
JSR 345
|
X
|
✔
|
|
EJB Lite
|
JSR 345
|
✔
|
X
|
|
Concurrency
Utilities
|
JSR 236
|
X
|
✔
|
|
Batch
Applications for the Java Platform
|
JSR 352
|
X
|
✔
|
|
Interceptors
|
JSR 318
|
✔
|
✔
|
|
Common Annotations
|
JSR 250
|
✔
|
✔
|
|
Dependency
Injection for Java
|
JSR 330
|
✔
|
✔
|
|
CDI (Contexts and
Dependency Injection)
|
JSR 365
|
✔
|
✔
|
|
Bean Validation
|
JSR 380
|
✔
|
✔
|
|
EL
|
JSR 341
|
✔
|
X
|
|
JavaMail
|
JSR 919
|
X
|
✔
|
|
JSP
|
JSR 245
|
✔
|
X
|
|
Connectors
|
JSR 322
|
X
|
✔
|
|
JPA (Java
Persistence)
|
JSR 338
|
✔
|
✔
|
|
JTA (Java Transaction API)
|
JSR 907
|
✔
|
✔
|
|
JMS (Java Message Service API)
|
JSR 343
|
X
|
✔
|
|
Management
|
JSR 77
|
X
|
✔
|
|
WS
Metadata
|
JSR 181
|
X
|
✔
|
|
Web
Services
|
JSR 109
|
X
|
✔
|
|
JACC (Java Authorization
Contract for Containers)
|
JSR 115
|
X
|
✔
|
|
JASPIC (Java Authentication
Service Provider Interface)
|
JSR 196
|
✔
|
✔
|
|
JAX-RS (Java API for
RESTful Web Services)
|
JSR 339
|
✔
|
✔
|
|
JAX-WS (Java API for XML-Based
Web Services) (SE)
|
JSR 224
|
✔
|
✔
|
|
JAX-RPC (Java API for XML-Based
RPC)
|
JSR 101
|
X
|
✔
|
|
JAXR (Java API for XML
Registries)
|
JSR 93
|
X
|
✔
|
|
JAXP (Java API for XML
Processing) (SE)
|
JSR 206
|
✔
|
✔
|
|
JAXB (Java Architecture for XML
Binding) (SE)
|
JSR 222
|
✔
|
✔
|
|
StAX (Streaming API for XML) (SE)
|
JSR 173
|
✔
|
✔
|
|
JSTL
|
JSR 52
|
✔
|
X
|
|
JSON-P (Java API for
JSON Processing)
|
JSR 374
|
✔
|
✔
|
|
JSON-B (Java API for
JSON Binding)
|
JSR 367
|
✔
|
✔
|
|
WebSocket
|
JSR 356
|
✔
|
X
|
|
Java EE Security API
|
JSR 375
|
✔
|
✔
|
|
Java EE Application Deployment (Optional)
|
JSR 88
|
X
|
✔
|
|
Debugging
Support for Other Languages
|
JSR 45
|
✔
|
✔
|
|
SAAJ (SOAP with Attachments API
for Java) (SE)
|
JSR 67
|
✔
|
✔
|
|
JMX (Java Management Extensions) (SE)
|
JSR 003
|
✔
|
✔
|
|
Java Database Connectivity (SE)
|
JSR 221
|
✔
|
✔
|
|
JAF (JavaBeans Activation
Framework) (SE)
|
JSR 925
|
✔
|
✔
|
Yorumlar
Yorum Gönder