J2EE Is Dead - Completely Dead

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.

Comments:

Hi Adam, I would like to exercise your book's examples (to understand how much jee is powerful), but http://kenai.com/projects/javaee-patterns/ is out of service: it returns "proxy error".
Where can I find your examples described in the book?

Thanks!

Posted by Antonio on January 03, 2011 at 06:06 PM CET #

Hey Adam. What are your thoughts on servlets. Are they still useful or has web services replaced them? Thanks.

Posted by Drew on January 05, 2011 at 08:06 PM CET #

But J2EE name is still being used in many discussions and forums!!

Posted by Sandeep Bhandari on February 08, 2011 at 06:47 PM CET #

This is really amazing to know that in J2EE 6 "Java EE 6 a helloWorld() takes exactly one line of code " , I had worked in previous J2EE version and know the pain of Remote , local and Bean class , so this is something a sigh of relief to me.

Thanks
Javin

Posted by Javin Paul @ Tibco RV Tutorial on February 13, 2011 at 01:46 PM CET #

Hi Adam, I've been convinced by the simplicity of JEE6 long enough and are alwys trying to evangelize my colleagues. However, do you have any figures about the market share of JEE6 projects vs. "other enterprise technology" (e.g. Spring)? Any URLs would be helpful. Google is not of much help here...

Posted by André Füchsel on May 16, 2011 at 05:02 PM CEST #

Firstly really enjoyed the book. I would like to raise one issue relating to DDD and SOA. In my view one can use DDD and SOA together by merging 2 solutions described in the book. One puts the logic into domain objects and not in the Controller layer as described in the SOA section. In order to export this logic to the client one can have the service return a DTO which contains setters but no getters for the domain objects. Then one writes a series of methods which utilize the domain objects. This gives you control of what is exported to the client. Obviouly one must export all the necessary data in the dto to avoid LazyInitializationExceptions. This in my view gives the benefits of SOA and DDD. Otherwise one ends up with too many fine grained service calls causing performance bottlenecks. Interested to think what you think of this solution.

Posted by Tim Canavan on July 06, 2011 at 02:08 AM CEST #

Is there any recent research on the adoption of Java EE 5 x Java EE 6 ?

Posted by Hugo Cesar Crohare Lavalle on May 10, 2012 at 03:43 AM CEST #

Post a Comment:
  • HTML Syntax: NOT allowed
...the last 150 posts
...the last 10 comments
License