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.