J2EE 1.4 or officially: "JSR 151: JavaTM 2
Platform, Enterprise Edition 1.4 (J2EE 1.4) Specification" was released at 24 Nov, 2003 and was designed to be used with JDK 1.4, J2EE 1.3 was released at 24 September 2001 and is more than 9 years old now.
In JDK 1.4 there were no annotations available, so you had to configure
everything with XML. J2EE 1.4 is more Configuration Over Convention,
than the current - more reasonable opposite principle of Configuration
by Exception or Convention over Configuration.
If I read or hear "J2EE" I always have to think about xdoclet
with about 50 lines of XML, a Home Interface, Remote Interface and an
unrelated Bean class just to implement a helloWorld() method. ...with
Java EE 6 a helloWorld() takes exactly one line of code - as it should be.
Even JDK 1.5 is End of Service Life
and so officially dead for greenfield projects as well. Most of the
J2EE 1.4 application servers were not even officially supported on JDK
1.5, so it is truly ancient technology.
However: there is more interests in Java EE 6 - measured in number of
session attendees at conferences, blog statistics, number of sold books :-)
and project requests, than ever. What also amazed me was the result of
my informal surveys after talks at various conferences (JAX, W-JAX,
JavaOne and Devoxx). The majority of attendees do use Java EE 5. The
minority is using J2EE 1.4. Even the number of Java EE 6 projects seems
to be slightly higher, than J2EE. ...and Java EE 6 is only one year young...
So J2EE is dead, but Java EE 6 rocks.