# j2ee

* [Versions](/web/j2ee.md#versions)
* [Profile](/web/j2ee.md#profile)
* [Servlet](/web/j2ee.md#servlet)
* [EJB](/web/j2ee.md#ejb)
* [application servers](/web/j2ee.md#application-servers)
  * [Open Source](/web/j2ee.md#open-source)
* [J2EE tutorial](/web/j2ee.md#j2ee-tutorial)
* [glassfish](/web/j2ee.md#glassfish)
* [IDE](/web/j2ee.md#ide)
  * [IBM Rational Application Developer](/web/j2ee.md#ibm-rational-application-developer)
  * [Eclipse](/web/j2ee.md#eclipse)

## Versions

| Release           | Year | [Major Version](https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers) |
| ----------------- | ---- | ----------------------------------------------------------------------------------------------------------------- |
| J2SE 1.4          | 2002 | 48                                                                                                                |
| J2SE 5.0          | 2004 | 49                                                                                                                |
| Java SE 6         | 2006 | 50                                                                                                                |
| Java SE 7         | 2011 | 51                                                                                                                |
| Java SE 8         | 2014 | 52                                                                                                                |
| Java SE 9         | 2017 | 53                                                                                                                |
| Java SE 10 (18.3) | 2018 | 54                                                                                                                |

```
J2EE 1.4 (November 11, 2003)
Java EE 5 (May 11, 2006)
Java EE 6 (December 10, 2009)
Java EE 7 (June 12, 2013)
Java EE 8 (September 21, 2017)
```

| Specification                                              | Java EE 6\[9] | Java EE 7\[3] | Java EE 8\[5] |
| ---------------------------------------------------------- | ------------- | ------------- | ------------- |
| Servlet                                                    | 3             | 3.1           | 4             |
| JavaServer Pages (JSP)                                     | 2.2           | 2.3           | 2.3           |
| Unified Expression Language (EL)                           | 2.2           | 3             | 3             |
| JavaServer Faces (JSF)                                     | 2             | 2.2           | 2.3           |
| Java API for RESTful Web Services (JAX-RS)                 | 1.1           | 2             | 2.1           |
| Java API for WebSocket (WebSocket)                         | n/a           | 1             | 1.1           |
| Java API for JSON Processing (JSON-P)                      | n/a           | 1             | 1.1           |
| Common Annotations for the Java Platform (JSR-250)         | 1.1           | 1.2           | 1.3           |
| Enterprise JavaBeans (EJB)                                 | 3.1 Lite      | 3.2 Lite      | 3.2           |
| Java Transaction API (JTA)                                 | 1.1           | 1.2           | 1.2           |
| Java Persistence API (JPA)                                 | 2             | 2.1           | 2.2           |
| Bean Validation                                            | 1             | 1.1           | 2             |
| Interceptors                                               | 1.1           | 1.2           | 1.2           |
| Contexts and Dependency Injection for the Java EE Platform | 1             | 1.1           | 2             |

## Profile

<https://stackoverflow.com/questions/24239978/java-ee-web-profile-vs-java-ee-full-platform>

![](https://i.stack.imgur.com/CybGj.png)

## Servlet

<https://en.wikipedia.org/wiki/Java_servlet>

| Servlet API version | Released       | JSR Number | Platform             | Important Changes                                                          |
| ------------------- | -------------- | ---------- | -------------------- | -------------------------------------------------------------------------- |
| Servlet 4.0         | Sep 2017       | 369        | Java EE 8            | HTTP/2                                                                     |
| Servlet 3.1         | May 2013       | 340        | Java EE 7            | Non-blocking I/O, HTTP protocol upgrade mechanism (WebSocket)\[7]          |
| Servlet 3.0         | December 2009  | 315        | Java EE 6, Java SE 6 | Pluggability, Ease of development, Async Servlet, Security, File Uploading |
| Servlet 2.5         | September 2005 | 154        | Java EE 5, Java SE 5 | Requires Java SE 5, supports annotation                                    |
| Servlet 2.4         | November 2003  | 154        | J2EE 1.4, J2SE 1.3   | web.xml uses XML Schema                                                    |

## EJB

![](http://assets.devx.com/articlefigs/JavaEE6Fig4.JPG)

## application servers

<https://en.wikipedia.org/wiki/List_of_application_servers#Java>

<https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Certified_referencing_runtimes>

### Open Source

<https://github.com/javaee/glassfish>\
<https://github.com/wildfly/wildfly>

## J2EE tutorial

<https://javaee.github.io/firstcup/creating-example002.html>

## glassfish

<https://blogs.oracle.com/theaquarium/glassfish-docker-images-%E2%80%93-update>

```
docker run -ti -e ADMIN_PASSWORD=<your-secret-password> -p 4848:4848 -p 8080:8080 -d oracle/glassfish
docker run -ti -p 4848:4848 -p 8080:8080 -d oracle/glassfish   # Auto Generated `admin` password
```

## IDE

### IBM Rational Application Developer

Tutorial: <https://www.ibm.com/developerworks/rational/library/05/719_app/index.html>

### Eclipse

eclipse.ini

```
-vm
path_to\jdk1.8.0_60\bin\javaw.exe
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.ferro.pro/web/j2ee.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
